zoukankan      html  css  js  c++  java
  • java视频学习记录

    一、基础语法

    比特(bit)
    只能为一个值0或1,8比特(bit)是一个字节
    字节(byte)
    8个bit,但是第一位表示正负号,所以,一字节范围是-2^7——2^7-1

    原码 反码 补码

    在计算机内,定点数有3种表示法:原码、反码和补码。
    【原码】二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
    【反码】表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
    【补码】表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
    计算机数据是用补码表示的,正数的补码就是它的原码,而负数的补码是将其原码(取绝对值后的原码)取反加1得到的。
      即:负数的二进制 = 正数(该数的绝对值)的二进制反码 + 1
    例如:求-5的补码是
    1. 取绝对值:-5 的绝对值:5
    2. 转二进制:5的二进制:0000 0101
    3. 取反码: 0000 0101 的反码 1111 1010
    4. 加一: 1111 1010 加一 1111 1011
    所以,针对一个字节,也就是8位
     最大的是 0111 1111(即127,2^7-1)
     最小的应该是1000 0000,按照上面的解释,先减一,得到0111 1111,然后按位取反得到1000 0000,该结果为所求负数的绝对值,所以结果是-128(和概念反着来求出该负数)
    java字符采用unicode编码,每个字符占两个字节,因而可以用十六进制表示。java类型转换,容量小的类型自动转换为容量大的数据类型(byte1,short2,char2,int4->long8->float4->double8)

    switch case语句

    每个case后应该与break连用,否则会穿透到下一个case中,输出两个结果。多个case可以合并到一起,用同一个结果(case 1:case 2:case 3:break)。最后default语句应该加上,不推荐省略。

    二、面向对象

    局部变量在栈内存里,方法调用完毕就消失;new出来的东西存在堆内存里;静态变量、字符串常量存在Datasegment;剩下的代码就是在代码区。

    子类继承父类

    子类自动拥有父类的所有成员(成员变量及方法),父类的私有变量也会拥有,但是不能在子类中访问。
    子类可以对父类方法进行重写
    - 重写方法必须拥有和被重写方法相同的方法名、参数列表、返回类型;
    - 不能使用比被重写方法更严格的访问权限;
    - 子类抛出的异常不能超过父类抛出的异常;
    继承中构造方法的规则
    - 子类的构造过程中必须调用父类的构造方法;
    - 使用this(参数)调用本类的另外的构造方法,如果调用super,必须写在子类构造方法的第一行;
    - 如果子类的构造方法中既没有显示的调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错;

    异常

    受检查异常
    顾名思义,受检查异常,需要我们用try…catch捕获处理或者抛出,否则编译不会通过。例如:IO异常,SQL异常,java规定必须对出现的这些异常进行catch;
    运行时异常
    当程序中可能出现这类异常时,即使没有用try…catch捕获它,还是会编译通过。java编译器不会检查它。例如:我们从来没有手工处理过NullPointerException异常,Java编译也能通过。
    Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。

    集合

    collection

    最基本的集合接口,其子接口Set和list接口。
    - set中的数据对象,无序但不可重复; list中的
    - 数据对象,有序可以重复;
    Collection继承了接口 Iterable ,当然拥有父接口中的 iterator()方法。
    ArrayList , Vector , LinkedList 是 List 的实现类
    - ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是使用数组方式存储数据,所以索引数据快而插入数据慢
    - LinkedList 是线程不安全的,底层是双向链表实现存储,增删改较快。(查找按序号索引数据需要进行前向或后向遍历,较慢)

    IO

    输入流、输出流,都是站在程序的角度上来说的。
    比如读取文件的数据到程序中,站在程序的角度来看,就叫做输入流。input

    直接与数据源相连的流

    • 对文件的读写参数是文件名
      FileInputStream/FileOutputStream
      FileReader/FileWriter
    • 以字节数组的形式读取,可以实现不经文件直接从键盘读取 参数是 byte[]类型
       ByteArrayInputStream ByteArrayOutputStream

    套在上面两个流外面的流

    • 带缓冲区的流,通常是套在别的流之外。
        BufferedInputStream BufferedOutputStream 参数分别是 InputStream,OutputStream类型
        BufferedReader BufferedWriter 参数分别是 Reader,Writer类型
    • 转换流,用于将字节流转换成字符流。
        InputStreamReader OutputStreamWriter 参数分别是 InputStream OutputStream类型
    • 数据流,提供了可以读取基础类型的数据的方法。
        DataInputStream DataOutputStream 参数分别是InputStream,OutputStream类型
    • 打印流 (这个流比较特殊,参数很多: File String OutputStream Writer都可以),融合Data和Buffered。
        PrintStream PrintWriter对象流,直接读取对象类型的数据, 把对象放在流上传输。
        ObjectInputStream ObjectOutputStream 参数分别是 InputStream,OutputStream类型

  • 相关阅读:
    框架和库的区别
    象棋中常用的最小值最大值算法及剪枝算法
    cocos2dx 3.x中的渲染机制
    用vs2013编译lua源码方法
    VS中设置#define _CRT_SECURE_NO_WARNINGS的两种方式
    lua编程基础
    VS2013中如何更改主题颜色(深色)和恢复默认的窗口布局
    (二)识别NAND Flash Nor Flash
    Linux设备驱动之Ioctl控制
    linux驱动程序中的并发控制
  • 原文地址:https://www.cnblogs.com/qingchen521/p/8575769.html
Copyright © 2011-2022 走看看