![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA SE基础知识
Xiao_20170620
这个作者很懒,什么都没留下…
展开
-
什么是this逃逸
在构造函数中, this引用逸出, 则此时 可能对象实例还没有完全初始化. 比如此对象实例有final int i=47; 因为i还没有初始化, 外部线程去 查看i, 可能会看到i==null的结果. 这就不对了说仔细一点, 初始化一个对象, 比如代码new TestClass(), 完成了以下操作1).为TestClass对象实例分配内存空间;this指针指向此空间; 2).调用Tes...原创 2020-04-26 16:20:38 · 211 阅读 · 0 评论 -
泛型
泛型及自定义泛型一、起因:JDK1.4以前类型不明确1、装入集合的类型都被当作Object对待,从而失去自己的实际类型。2、从集合中取出时往往需要转型,效率低,容易产生错误。3、方案:在定义集合的时候同时定义集合中对象的类型。4、作用:、模板:提高代码的重用率。、安全:在编译的时候检查类型安全。、省心:所有的强制转换都是自动和隐式的。二、概念:泛型就原创 2017-07-10 15:24:06 · 214 阅读 · 0 评论 -
数组初始化
数组的初始化有动态初始化int a[]; a=new int [3];静态初始化int a[]={3,9,8};默认初始化int a[]=new int[5];java就是不允许你int[] b = new int[2]{100,200}这样定义,记住就好~~~原创 2017-07-15 10:14:38 · 261 阅读 · 0 评论 -
start()和run()方法的区别
java线程一直是一个比较容易困扰的地方,首先,我们来认识下怎样生存线程。认识 Thread 和 Runnablejava中实现多线程有两种途径:继承Thread类或者实现Runnable接口。Runnable是接口,建议用接口的方式生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。在使用Thread的时候只需继承Thread,并且new一个实例出来转载 2017-06-23 17:10:23 · 2556 阅读 · 0 评论 -
Integer自动装箱超出赋值范围
Integer自动装箱超出赋值范围 //在-128~127 之外的数 Integer i1 =200; Integer i2 =200; System.out.println("i1==i2: "+(i1==i2)); // 在-128~127 之内的数 Integer i3 =100; I原创 2017-06-23 15:59:37 · 2176 阅读 · 0 评论 -
String与StringBuffer的区别
String与StringBuffer的区别,“==”与.equals()方法的使用一、“==”与.equals()方法的使用。1、String类。 、String类“==”的使用。 String a = "a";String b=“a”;由于Sting是final类,并且a、b是对象不是基本类型。String对象的值不能改变,也就是值相同,对象也相同。所以a原创 2017-06-22 19:08:16 · 297 阅读 · 0 评论 -
GOF23设计模式——单例模式
单例模式一、核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。二、单例模式的优点: 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 单例模式可以在系统设置全局的访问点,优化环共享资源的访问,例如可以设计一个单原创 2017-06-27 10:15:23 · 279 阅读 · 0 评论