java基础知识汇总(持续更新中....)

Posted tonghao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础知识汇总(持续更新中....)相关的知识,希望对你有一定的参考价值。

1.java四大特性:抽象、继承、封装,多态

  构造函数:

http://blog.csdn.net/qq_33642117/article/details/51909346  

  

2.java数据基本类型:byte  short  int  long  double  float  char  boolean,

包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

Integer :整型变量的值在-128-127之间时不会new新的对象,而是直接引用常量池中的Integer对象
,当增形变量的值不在-128-127之间时直接new新对象  

public class Test03 {  
  
    public static void main(String[] args) {  
        Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;  
  
        System.out.println(f1 == f2);//结果为true  
        System.out.println(f3 == f4);//结果为false  
    }  
}  

  3.静态代码块:静态代码块在类加载时执行,且只执行一次
ps:  在new对象之前加载   例:

public class StaticTest {
	public static void main(String[] args){
		new Test1();
		new Test1();
	}
}
class Test1{
	public Test1(){
		System.out.println("Test1构造方法");
	}
	
	static{
		System.out.println("我是静态代码块,先执行我!!");			
	}
	
}

  执行结果

我是静态代码块,先执行我!!  
Test1构造方法  
Test1构造方法  

  4.jvm内存中栈stack 堆heap 方法区method area

栈:定义基本数据变量,对象引用,函数调用的现场保存
堆:new关键字  创建对象    GC(垃圾收集器管理)的主要区域
方法区和堆都是各个线程共享的内存区域,

String str = new String("hello");
str放在栈中,new的字符串对象放在堆中, hello放在方法区的常量池中

https://www.cnblogs.com/dingyingsi/p/3760730.html  

  
5.StringBuffer与StringBuider区别   

StringBuffer支持并发操作,线程安全,适合多线程,  作用:String是不可改变
其属性不可改变,当对String对象操作的时候可能会产生大量的中间字符串对象,造成
因此使用可以改变的StringBuffer
StringBuider 不支持并发操作,线程不安全,不适合多线程,单线程中性能高

https://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html  

  str.intern() 的作用:会将共享池中的字符串与外部的字符串s进行比较,如果共享池中已经有
与之相等的字符串,则不会将外部的字符串放入共享池,返回的也是共享池中的
字符串,如果不同则将外部的字符串放入共享池中,并返回其字符串的句柄
-------这样做的好处就是节省空间。

//常量池中本来就不含有jva字符,所以new的jva会放入常量池,属于同一个对象,返回true  
        String s1 = new StringBuilder("j").append("va").toString();  
        System.out.println(s1.intern()==s1);//true  
        //常量池中本身就有字符串java所以返回的并不是同一个字符串 s2.intern()返回常量池中的  
        //java s2为new的字符所以不相等返回false  
        String s2 = new StringBuilder("ja").append("va").toString();  
        System.out.println(s2.intern()==s2);//false  
         */  

  6.泛型:

https://www.cnblogs.com/lwbqqyumidi/p/3837629.html  

  















以上是关于java基础知识汇总(持续更新中....)的主要内容,如果未能解决你的问题,请参考以下文章

关于大数据相关的问答汇总,持续更新中~

IDEA 常用的小技巧汇总,JAVA 新手上路必备,快上车!(持续更新)

Java程序员需要知道的操作系统知识汇总(持续更新)

css面试题汇总 (持续更新)

css面试题汇总 (持续更新)

Python 原创文章汇总(持续更新,建议收藏)