Java基础-基本数据类型的封装类的讲解、单例模式、垃圾回收机制_第1页
Java基础-基本数据类型的封装类的讲解、单例模式、垃圾回收机制_第2页
Java基础-基本数据类型的封装类的讲解、单例模式、垃圾回收机制_第3页
Java基础-基本数据类型的封装类的讲解、单例模式、垃圾回收机制_第4页
Java基础-基本数据类型的封装类的讲解、单例模式、垃圾回收机制_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java基础主要内容String,StringBuffer类的讲解基本数据类型的封装类的讲解toString()方法,Math类,Class类单例模式Java中内存的分配垃圾回收机制字符串(String)什么是字符串?字符串指的是字符序列Java中并没有内置的字符串类型,而是在标准Java库中包含一个String类字符串是一种简单而且常用的数据结构字符串的声明象使用其它基本数据类型一样,使用String定义字符串变量Stringe="";//一个空字符串Stringgreeting="Hello";因为使用非常广泛String被定义为finalString类String类的下述方法能创建并返回一个新的String对象:concat,replace,substring,toLowerCase,toUpperCase,trim,String.提供查找功能的有关方法:endsWith,startsWith,indexOf,,lastIndexOf.提供比较功能的方法:equals,equalsIgnoreCase,compareTo.其它方法:charAt

,length.字符串连接和大多数程序语言一样,Java允许使用符号+把两个字符串连接(concatenate)在一起Strings1="WelcometoJava";Strings2=s1+"Programming";//S2为字符串"WelcometoJavaProgramming"当连接一个字符串和一个非字符串时,非字符串将转换成字符串intage=13;Stringrating="PG"+age;//rating为字符串"PG13"System.out.println("Theansweris"+answer);子串String类中的substring方法可以从字符串中截取一个子串,例如:Stringgreeting="Hello";Strings=greeting.substring(0,4);//s的值为"Hell"substring方法substring(int

beginIndex,int

endIndex);beginIndex为欲截取字符串的起始位置索引endIndex为不想截取的起始位置字符串中第一个字符的位置为0字符串length方法用来获取字符串长度Stringgreeting="Hello";intn=greeting.length();//n等于5charAt方法用来获取字符串中的单个字符charlast=greeting.charAt(4);//第4个字符是o测试字符串是否相等使用equals方法比较两个字符串是否相等Strings1="Hello";Strings2="Hello";if(s1.equals(s2)){//s1和s2具有相同的内容}字符串什么是字符串?字符串指的是字符序列Java中并没有内置的字符串类型,而是在标准Java库中包含一个String类字符串是一种简单而且常用的数据结构字符串的声明象使用其它基本数据类型一样,使用String定义字符串变量Stringe="";//一个空字符串Stringgreeting="Hello";字符串连接和大多数程序语言一样,Java允许使用符号+把两个字符串连接(concatenate)在一起Strings1="WelcometoJava";Strings2=s1+"Programming";//S2为字符串"WelcometoJavaProgramming"当连接一个字符串和一个非字符串时,非字符串将转换成字符串intage=13;Stringrating="PG"+age;//rating为字符串"PG13"System.out.println("Theansweris"+answer);子串String类中的substring方法可以从字符串中截取一个子串,例如:Stringgreeting="Hello";Strings=greeting.substring(0,4);//s的值为"Hell"substring方法substring(int

beginIndex,int

endIndex);beginIndex为欲截取字符串的起始位置索引endIndex为不想截取的起始位置字符串中第一个字符的位置为0字符串length方法用来获取字符串长度Stringgreeting="Hello";intn=greeting.length();//n等于5charAt方法用来获取字符串中的单个字符charlast=greeting.charAt(4);//第4个字符是o测试字符串是否相等使用equals方法比较两个字符串是否相等Strings1="Hello";Strings2="Hello";if(s1.equals(s2)){//s1和s2具有相同的内容}Stringint

compareTo(Stringvalue)按字母顺序比较两个字符串。如果两个字符串相等,则返回0;如果字符串在该值之前,则返回值小于0;如果字符串在该值之后,则返回值大于0StringBuffer类StringBuffer用于表示可以修改的字符串构造方法StringBuffer()StringBuffer(intcapacity)StringBuffer(String

initialString)实现修改操作的方法:append,insert,reverse,setCharAt,setLength.toString()//转化为字符串String与StringBuffer的区别String是不可变的每次产生字符串时都会产生新的对象会占用大量内存StringBuffer是可变的在项目中操作字符串的连接时都建设使用StringBufferStringBuffer

stringBuffer=newStringBuffer();stringBuffer.append(“”);练习自己查API实现传过来的参数是"name=zhangsan;num=3;score=123"练习把里面所有的东西分离出来,然后封装成一个student的实例.(这里面用到的数字类型先用String类型替换,封装类尚未讲到.)==操作符与equals方法==操作符与equals方法的区别:equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型;一般情况下使用equals比较字符串内容是否相等使用==判断int或者boolean等==操作符与equals方法==比较对象的引用equals比较对象的内容默认情况下是比较对象的引用如果想自己判断需要重写对象的hashCode和equals方法String类型和Wrapper类型的equals已经被重写了Object类Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类

publicclassPerson{ ... }

等价于:publicclassPersonextendsObject{...}Object类Object中的方法Equals是否两个对象相等hashCodeDogd=newDog();System.out.println(c.hashCode());//列出对象的hashcode,类似唯一id;getClassDogd=newDog();System.out.println(d.getClass());//得到对象的类Object类Object中的方法toString()得到对象有意义的表示//默认情况是打印的引用在内存中的地址toString

方法toString()方法在Object类中定义,其返回值是String类型,描述当前对象的有关信息在进行String与其它类型数据的连接操作时,自动调用toString()方法可以根据需要在用户自定义类型中重写toString()方法基本类型数据转换为String类型时,调用了对应封装类的toString()方法封装类什么是封装类基本数据类型以类的形式体现boolean—Booleanint--Integer封装类有时想把primitive主数据类型当作对象来处理如何包装封装类如何把基本数据类型包装成对象inti=288Integeriwrap=newInteger(i);封装类针对八种基本定义相应的引用类型—封装类基本数据类型封装类

boolean

Boolean

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double封装类如何解开包装intI=288Integeriwrap=newInteger(i);int

unwraped=Value();String和int类型的转化String转化成primitive主数据类型Strings=“2”;Intx=Integer.parseInt(s);Booleanb=newBoolean(“true”).booleanValue();String和int类型的转化把primitive主数据类型转化成Stringdoubled=42.5;StringdoubleString=“”+d;doubled=42.5StringdoubleString=Double.toString(d);封装类用法举例inti=500;Integert=newInteger(i);intj=Value(); //j=500Strings=t.toString(); //s="500"Strings1=Integer.toString(314); //s1="314"Math类Math类中定义了多个static方法提供常用数学运算功能截断操作(Truncation):ceil,floor,round

取最大、最小及绝对值:max,min,abs

三角函数:sin,cos,tan,asin,acos,atan,toDegrees,

toRadians

对数运算:log,exp

其它:sqrt,pow,random

常量:PI,EClass类getClass()方法获取该对象的Class实例;Class类的静态方法forName(),其定义为publicstaticClassforName(String

className)throwsClassNotFoundException单例(Singleton)模式一个类只有一个实例,而且自行实例化并向整个系统提供这个实例实现:私有构造方法提供实例的静态方法classSingleton{ privatestaticfinalSingletonst=newSingleton(); privateSingleton(){} publicstaticSingletongetInstance(){ returnst; }}Java中内存的分配内存里分四个区域:codesegment(存放代码)datasegment(存放静态变量字符串常量)stack(存放局部变量)heap(存放new出来的对象或者数组)Java内存解析引用Java中除了基本数据类型之外的变量都称为引用类型Java中的对象是通过引用对其操作的栈Java内存解析Stringstr=newString(“HelloJava”);Str(0xa23b)堆内存……….Java内存解析PublicclassDog{privateStringdname;privateintage;}Dogdog1=newDog();Dogdog2=newDog();dog1和dog2是指向内存中的引用Java内存解析stackdogdog1dnameagednameageJava内存解析构造函数publicclassPerson{privateStringpname;publicintage;PublicPerson(Stringpname,intage){this.pname=pname;this.age=age;}}publicstaticvoidmain(Stringargs[]){personp0=newPerson(“test0”,5);}Java内存解析先分配空间构造函数后被实例变量被赋值方法执行完局部变量消失引用指向对象Java内存解析p0Pname:test0age:5age:5pname:test0Java内存解析publicclassDog{privateStringdogName;privateintage;publicDog(String

dogName,intage){this.dogName=dogName;this.age=age;}Java内存解析Dogdog1=newDog("xiaobai",5);Dogdog2=newDog("xiaohei",6);MemoryDemo

md=newMemoryDemo();intdate=9;md.change3(date);System.out.println("date:"+date);md.change2(dog1);System.out.println("dog1age"+dog1.getAge());md.change2(dog1);System.out.println("dogName:"+dog1.getDogName());对象的销毁对象的诞生对象的销毁对象的销毁局部变量实例变量对象局部变量局部变量只会存活在声明该变量的方法中publicvoidread(){

ints=42;//当方法结束时,s会完全消失}实例变量如果对象活着实例变量也活着对象如果没有对对象的引用,该对象就没有作用了,也就是垃圾对象引用永久性的离开它的范围Voidgo(){Lifez=newLife();}引用被赋值到其他对象上Lifez=newLife();Z=newLife();直接将引用设定为nullLifez=newLife();Z=null;垃圾回收机制系统自动调用程序员没有办法干预System.gc();垃圾回收机制classGarbage{

intindex; staticintcount; Garbage(){ count++;

System.out.println("object"+count

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论