7.12

1.java数据类型以及相应的默认值
在java中的基本数据类型的默认值为0、引用数据类型默认值为null但是给定的默认值在相应的数据类型为局部变量时java编译的时候会出错;

2.java jdk1.7和1.8的对比
1、jdk1.7 规定接口中只能定义抽象方法、即是 抽象方法只能存在于接口中、普通方法只能存在于类中
2、jdk1.8 规定 在switch语句中可以定类型为Sring
3、jdk 1.8支持在数字中可以加上下划线、但是必须要符合下划线的规范(下划线不在数字的首位和末尾)
4、jdk 1.8支持用可以用二级制数值表示数字的数值:0b0001 = 1


3.StringBuffer:线程安全的、String线程 不安全的(不可改变的)
stringBuilder:线程不安全的
String的速度相对执行快是因为String在执行时其实是通过Stringbuilder完成的 在过程中不需要执行一些有关于锁的问题所以才使得StringBuffer的执行速度慢于String
StringBuffer、StringBuilder、String
StringBuffer的capacity方法 在定义一个StringBuffer时如果指定的数据长度比append的数值长度大则StringBuffer的capacity的长度为 指定长度加上 append的长度、如果append的长度大于StringBuffer的长度则StringBuffer.capacity的值为append的数值长度

4.java的数据都以二进制补码的方式存储的、在位非计算的时候:(~5)=-6;(~-5)=4

5.TreeSet集合的方法 set.subSet(from,true,to,true);获取从from到to范围内set有的数据

6.👿🤢😈👿
  • int和int之间,用==比较,肯定为true。基本数据类型没有equals方法
  • int和Integer比较,Integer会自动拆箱,== 和 equals都肯定为true
  • int和new Integer比较,Integer会自动拆箱,调用intValue方法, 所以 == 和 equals都肯定为true
  • Integer和Integer比较的时候,由于直接赋值的话会进行自动的装箱。所以当值在[-128,127]中的时候,由于值缓存在IntegerCache中,那么当赋值在这个区间的时候,不会创建新的Integer对象,而是直接从缓存中获取已经创建好的Integer对象。而当大于这个区间的时候,会直接new Integer。
    当Integer和Integer进行==比较的时候,在[-128,127]区间的时候,为true。不在这个区间,则为false
    当Integer和Integer进行equals比较的时候,由于Integer的equals方法进行了重写,比较的是内容,所以为true

  • Integer和new Integer : new Integer会创建对象,存储在堆中。而Integer在[-128,127]中,从缓存中取,否则会new Integer.
    所以 Integer和new Integer 进行==比较的话,肯定为false ; Integer和new Integer 进行equals比较的话,肯定为true

  • new Integer和new Integer进行==比较的时候,肯定为false ; 进行equals比较的时候,肯定为true
    原因是new的时候,会在堆中创建对象,分配的地址不同,==比较的是内存地址,所以肯定不同

  • 装箱过程是通过调用包装器的valueOf方法实现的
    拆箱过程是通过调用包装器的xxxValue方法实现的(xxx表示对应的基本数据类型)

  • 总结:Byte、Short、Integer、Long这几个类的valueOf方法实现类似的。所以在[-128,127]区间内,==比较的时候,值总是相等的(指向的是同一对象),在这个区间外是不等的。

    而Float和Double则不相等, Boolean的值总是相等的
7.mysql索引:组合索引的最优原则:组合索引的第一个字段必须出现在查询条件中,这个查询才能用到索引、只有存在索引的最右的字段mysql引擎会自动调用索引优化查询效率。

全部评论

相关推荐

06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务