Java基础知识
daydreameryyyy
这个作者很懒,什么都没留下…
展开
-
String、StringBuffer、StringBuilder对比
String、StringBuffer、StringBuilder对比String类型源码:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; ... ...}原创 2022-04-10 12:51:16 · 251 阅读 · 0 评论 -
数组转集合问题Arrays.asList()
数组转集合问题Arrays.asList()源码:Arrays.classpublic static <T> List<T> asList(T... a) { //ArrayList为静态内部类 return new Arrays.ArrayList(a);}//内部类Arrays.ArrayList.classprivate static class ArrayList<E> extends AbstractList<E> impl原创 2022-04-05 12:03:10 · 462 阅读 · 0 评论 -
final/finally/finalize关键字对比
1. final final意味着“最后的、最终的”含义,final可以用来修饰类,方法和变量(成员变量或局部变量)。1.1 修饰类 当用final修饰类时,表明该类不能被其他类所继承。String是一个典型的final类型的类。注意:final类中所有的成员方法都会隐式的定义为final方法。1.2 修饰方法把方法锁定,以防止继承类对其进行更改。如:枚举类中的equals()/clone()此方法不能被重写,也不能在子类中重新定义同名同参的新方法1.3 修饰变量 final成员变量原创 2022-04-01 00:03:37 · 263 阅读 · 0 评论 -
Stream API
请参考:https://www.cnblogs.com/wuhenzhidu/p/10740091.html转载 2021-08-10 15:54:55 · 71 阅读 · 0 评论 -
try-with-resources使用
final、finally与finalize的区别1. final在java中,final可以用来修饰类,方法和变量(成员变量或局部变量)。1.1 修饰类当用final修饰类时,表明该类不能被其他类所继承。注意:final类中所有的成员方法都会隐式的定义为final方法。1.2 修饰方法把方法锁定,以防止继承类对其进行更改。final方法意味着“最后的、最终的”含义,即此方法不能被重写,也不能在子类中重新定义同名同参的新方法注意:若父类中final方法的访问权限为private,将导致子类原创 2021-04-13 14:57:28 · 497 阅读 · 0 评论 -
Arrays.asList()转换问题
Arrays.asList()转换问题Arrays.asList(arr) 返回的集合为Arrays中的静态内部类ArrayList,该类没有重写add() remove() clear()方法,在方法内部进行了浅拷贝,ArrayList中存放的数据和arr数组的地址值相同,所以修改其中一个都会相应改变,具体看源码;利用多态性,通过List接收asList()方法的返回结果,调用的方法为AbstractList重写的List中的方法;参数arr数组如果使用的是基本数据类型,则把他看作是一个整体保存内原创 2021-08-09 16:45:12 · 435 阅读 · 0 评论 -
内部类的简单使用
成员内部类作为外部类的成员变量,而局部内部类定义在方法内、代码块内、构造器内(有必须使用final局部变量的问题)。下面为成员内部类使用示例: @Datapublic class School { private String schoolName; private String address; @Data public class Student{ private String studentName; public static原创 2021-04-27 15:10:27 · 433 阅读 · 1 评论 -
foreach循环中不能使用字符串拼接
问题: @Test public void forEachTest(){ String str = "中国你好!"; List<String> list = Arrays.asList("a","b","c","d"); list.forEach(item->{ //编辑错误:Variable used in lambda expression should be final or ef原创 2021-04-13 17:21:24 · 1389 阅读 · 0 评论 -
lambda表达式使用局部变量要用final
lambda表达式使用局部变量要用final lambda表达式本身是一个匿名内部类的一种编写形式,可以操作外部的变量使用实例变量或静态变量是没有限制的(可认为是通过 final 类型的局部变量 this 来引用前两者)使用局部变量必须显式的声明为 final 或实际效果的的 final 类型,即该变量从未被改变过 @Test public void finalTest(){ String str = "中国你好!"; //在原创 2021-04-13 12:28:51 · 1150 阅读 · 0 评论 -
Java继承问题
Java继承问题 首先重写只针对方法,子类和父类中的同名属性只是子类覆盖了父类的相同属性; 父类中的所有属性和方法都会被子类继承(private修饰的属性方法只是拥有,但可以通过父类中公共方法去间接使用),子类在继承的时候,子类可以调用继承下来的属性和方法(私有的除外),另外 final方法、私有方法、static方法是不能重写的; 在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写(Overri原创 2021-04-09 16:36:19 · 293 阅读 · 0 评论 -
包装类及基本数据类型之间大小比较
包装类比大小及运算一、案例我们先来看下这个例子:public class IntegerTest { public static void main(String[] args) { Integer a = 127; Integer b = 127; System.out.println(a == b); a = 128; b = 128; System.out.println(a == b); a = -128; b = -128; System.o原创 2021-04-08 13:53:35 · 2183 阅读 · 2 评论