Loading

重看Java教学视频时的查漏补缺

数据类型

1.基本数据类型:四类八种。
2.数据范围与字节数不一定相关。如float为4字节表示范围比long的8字节要大。
3.浮点数默认double类型,如要用float,需加F。
4.boolean类型不能进行数据类型转换。
5.对于基本类型来说,==是进行数值比较;对于引用类型来说,==是进行地址值比较。

算术运算符

1.对于String字符串类型来说,“+”代表字符串连接操作。
2.byte,short,char三种类型进行运算时,都会被首先提升为int类型,再进行计算。

方法

1.方法重载与方法的返回值无关。
2.当数组作为参数传递到方法中时,传递的是数组的地址值。
3.当方法的局部变量和成员变量重名时,根据就近原则,优先使用局部变量。

数组

1.数组的长度在运行期间不可被改变。
2.静态初始化时,数组先有个默认值,随后立即被赋值。

字符串

1.字符串中的内容永不可变。
2.字符串可以共享使用。
3.字符串效果相当于char[]字符数组,但底层原理是byte[]字节数组。
4.通过双引号""定义的字符串在字符串常量池中,new出来的字符串不在常量池中。

关键字

  • static
    1.静态变量属于类,被所有对象共享。
    2.静态方法不能直接访问非静态变量,也不能使用this关键字。

继承

1.Java语言是单继承的(一个类的直接父类只能有一个)。
2.子类必须调用父类构造方法。

匿名

1.匿名内部类在创建对象时只能使用唯一一次。
2.匿名对象在调用方法时只能使用唯一一次。

集合

1.集合是一种容器,用来存储多个数据。
2.集合的长度可以改变。
3.集合存储的是对象,对象的类型可以不一致。

  • List接口
    1.有序(存储和取出的顺序相同)。
    2.允许存储重复元素。
    3.有索引。

  • Set接口
    1.不允许存储重复元素。
    2.没有索引。

内存划分

Java中的内存总共划分为五个部分。

  1. (Stack):存放方法中的局部变量。(方法的运行在栈中)
    局部变量:方法的参数或者方法{}内部的变量。
    作用域:一旦超出作用域,立即从栈内存消失。

  2. (Heap):凡是new出来的东西都在堆当中。
    堆内存里的东西都有一个地址值:16进制。
    堆内存里面的数据都有默认值:

    数据类型 默认值
    整数 0
    浮点数 0.0
    字符 '\u0000'
    布尔 false
    引用类型 null
  3. 方法区(Method Area):存储.class相关信息,包含方法的信息(只存储死信息)

  4. 本地方法栈(Native Method Stack):与操作系统相关。

  5. 寄存器(pc Register):与CPU相关,性能非常高。

其他注意

1.ArrayList集合不能直接存储整数,可以存储Integer包装类。

关于编译器

1.对于byte,short,char三种类型的数据来说,如果右侧数据没有超过左侧范围,则编译器补上强转;如果右侧数据超过左侧范围,则编译器报错。
2.如果等号右侧的表达式是一串常量,没有变量参与,则该表达式在编译时就进行了运算,而不是等到程序运行时再计算。“编译器的常量优化”.
3.字符串“重地”和字符串“通话”的哈希值是一样的。


ArrayList集合

  • 底层原理是数组,所以查询快增删慢

LinkedList集合

  • 底层原理是链表,所以查询慢增删快

Vector集合

  • 底层原理也是数组,不过是单线程的,实现比较慢。(了解)
posted @ 2020-02-24 15:50  绛绛  阅读(100)  评论(0编辑  收藏  举报