Java基础知识总结(11)

原创 2018年04月15日 15:03:56

在Java中基本数据类型不具有对象特征的


没有属性和方法,没法对象化交互

包装类的产生就是为了解决基本类型这样的问题

通过包装类可以让基本类型拥有属性和方法,可以对象化交互


注意一下打钩的两个字不一样


所有的包装类都是final继承的


所有的数值型都是继承Number类的


bool和char不是数字所以继承了Object



装箱:基本数据类型   →  包装类

拆箱:包装类   →    基本类型的值



装箱:1自动装箱


2手动装箱



拆箱:

    1 自动拆箱

    

2.手动拆箱

    


基本类型和字符串转换

    

    字符串转换基本类型

1 包装类的parse方法

    

2 valueOf方法  基本数据类型和包装类之间的装箱操作

包装类和基本数据类型之间存在自动拆箱操作

 先将字符串转换为包装类,再自动拆箱完成转换


基本数据类型的初始值


默认初始值:

    如果是包装类,则是null


1.new了两次,指向不同给的空间所以不一样

2.自动的拆箱

3.编译器实际上执行了


Java提供了类似于常量素组的缓存区,对象池如果传进来参数-128<参数<127就是直接拿来

最后一个,不在-128<参数<127所以不在这个范围内 ,必须new一个


除了Float和Double都是常量池概念


字符串:

String

创建String对象三种方式

String s1 = "jhkj";

String s2 = new String();     创建了空的字符串对象

String s3 = new String("jhkj");



String str1 = "jhkj";

String str2 = "jhkj";

String str3 = new String("jhkj");

System.out.println("str1和str2的内容相同"+(str1.equals(str2)));

System.out.println("str1和str3的内容相同"+(str1.equals(str3)));


System.out.println("str1和str2的地址相同"+(str1==str2));

System.out.println("str1和str3的地址相同"+(str1==str3));


我们内存里有栈,常量池 和堆


String str1 = "jhkj";

在栈中生成str1引用  常量池生成"jhkj"

str1指向"jhkj"

String str2 = "jhkj";  

栈生成str2引用  常量池已经有"jhkj"不会生成

直接把str2指向"jhkj"


String str3 = new String("jhkj");

在栈生成str3引用,堆创建new String("jhkj");

栈指向堆


如果String str4 = new String("jhkj");

在栈生成str4引用,堆创建新的new String("jhkj");

栈指向堆


String对象的不可变性:String对象一但创建则不能修改,是不可变的

所谓的修改其实是创建了新的对象所指向的内存空间不变

String s1 = "jh";

s1 = s1 + "kj";

我们用s1 + "kj"

实际上是常量池生成了新的字符串 "jhkj",在执行赋值 s1指向"jhkj"

"jh"没有指向他就被废弃掉了


StringBuilder

String和StringBuilder区别

String具有不可变现而StringBuilder不具备

当频繁操作字符串使用StringBuilder


当用String频繁操作会产生很多中间变量,也会产生很多在常量池中废弃的数据

StringBuilder可以避免这种情况发生

另外有个StringBuffer

StringBuilder和StringBuffer二者基本相似

StringBuffer是线程安全的,StringBuilder则没有,所以StringBuilder性能更高

大部分我们处理字符串都是单线程,线程安全主要是多线程情况下StringBuilder更好


四个构造方法

StringBuilder()创建了能容纳16个字符的空间 的空字符串

第二个:等同与String类

第三个:容量

第四个:用的最多,穿字符

还有很多方法 官网查



Java基础知识总结 (绝对经典)

  • 2017年11月06日 16:12
  • 415KB
  • 下载

JAVA入门基础知识小结

从C++到Java入门基础知识小结...
  • CSDN_SXL
  • CSDN_SXL
  • 2016-01-26 15:02:25
  • 7792

JavaWEB基础知识总结

什么是WEB、WEB服务器有什么用、如何开发WEB应用以及tomcat 的使用
  • Z_HaiSome
  • Z_HaiSome
  • 2016-10-26 19:44:16
  • 612

JAVA基础知识总结笔记

1.栈与堆:栈中用来存放一些原始数据类型的局部变量数据和对象的引用(String、数组、对象等等)但不存放对象内容。堆中存放使用new关键字创建的对象。字符串是一个特殊包装类,其引用是存放在栈里的,而...
  • kang89
  • kang89
  • 2011-07-17 17:58:28
  • 1059

【Java】Java基础知识总结

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思...
  • Taily_Duan
  • Taily_Duan
  • 2016-08-18 19:30:18
  • 2465

java基础知识总结(超级经典)

  • 2014年07月18日 15:53
  • 630KB
  • 下载

JAVA语言基础知识总结

今天写一下我的第一篇“技术博客”,作为一个仅学习了不到1个月时间的JAVA语言学习者,也只有用引号来演示一下自己的不安了。   前几天看了一个节目叫做老梁故事汇,讲到了影帝吴镇宇,说到一个特别的形容...
  • lvhongming1992
  • lvhongming1992
  • 2015-09-26 20:56:29
  • 1199

java基础知识总结(很详细全面)

  • 2013年10月20日 13:16
  • 482KB
  • 下载

java面试基础知识总结(一)

1.      static的作用 解析:static是静态修饰符,(在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指编译后所分配的内存会一直存在,知道程序退出才会释放...
  • xinyu2015
  • xinyu2015
  • 2016-04-18 21:31:06
  • 896

JAVA入门学习资料(笔记总结)

  • 2017年08月26日 18:42
  • 30.84MB
  • 下载
收藏助手
不良信息举报
您举报文章:Java基础知识总结(11)
举报原因:
原因补充:

(最多只允许输入30个字)