【前面的话】java
最痛苦的工做就是大部分系统外包,因此比较少写代码,在这七个月中只写了两个月左右的代码,而后天天都在作一些比较杂的事情,但愿有机会能够写一写代码,提升技术。面试
前段时间作了一下开发,还有两个月立刻也要过年了,时间相对就比较多了,因此又回过头来看看书,巩固一下基础知识,作一些笔记,看看本身的思惟,主要目的是为了本身积累,因此都是很基础、很基础的知识,请自行选择。若是看到这里要走了,祝新年快乐,也不枉进来一趟。工具
若是你们在学习Java过程当中遇到什么问题,或者缺少相关的Java学习资料,可查看右侧公告栏获取,有问题随问随答,还有我这段时间整理的一些Java学习手册,面试题,开发工具,PDF文档书籍教程,须要的话均可以避免费分享给你们。学习
【知识汇总】开发工具
String类的定义:String在java中是一个比较特殊的类,由于其本身能够作一种数据类型直接定义变量,以下:优化
String str = "hello";spa
String str = new String ("hello");3d
String两种不一样定义地理解:对象
String str = "hello"; //能够把str理解为一个char*,str指向数据段中的字符串"hello"。blog
String str = new String ("hello");//是new了一个对象,堆空间分配了一块内存,把对象放在里面,str 指向这个对象
上面二者的区别:
String str 1= "hello";
String str 2= "hello";
//当定义str2的时候,系统会先检测数据段里是否已经有了“hello”,若是有了那么str2直接指向这个“hello”,这是系统的优化。也就是说不会单独再在数据段中存储“hello”,str1和str2指向的是同一个数据段,也就是str1和str2表明的数据段地址也是同样的。
//改正哈,下面1楼指出了这里有误哈:能够参见1楼。
String str 3= new String ("hello");
String str 4= new String ("hello");
//str4是从新new的一个对象,是在堆空间又单独存储的,也就是说str3和str4的地址是不同的,可是存储内容是同样的。读者能够运行一下下面的代码:
代码:
运行结果:
对于String类对象是不可变字符的理解:
String str1="hello";
str1=str1.substring(0, 3)+” p!”;
//首先substring(0, 3)表示提取字符串第一个到第三个的字母。
//对于不可变的理解就是说,存储“hello”的地方永远存储的是“hello”,除非系统自动收回,是永远不会变的。对于str1提取子串,只是让str1再次指向“hello”的引用,对于这个引用再进行改变,而原来存储“hello”的地方是不变的。读者能够运行一下下面的代码:
代码:
运行结果:
//由于第2行代码是让str1和str2指向了同一个地址段,后面改变了str1的指向,而str2指向的东西是没有改变的。
【java代码】
【运行结果】
【后面的话】
将看到的、学到的东西写出来的感受仍是很是好的,一方面能够锻炼本身的思惟能力,另外一方面能够更加好的理解所学。
这几天看到了几句话分享一下:
你养兰花不是今天用来生气的。
昨日黄土陇头送白骨,今宵红灯账底卧鸳鸯。
完结撒花!!!