您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 基础医学 > Java基础知识总结
JAVA基础知识总结第一章Java入门:1.java诞生:1995年5月23日Sun公司发布了jdk1.0版本;作者:JamesGosling.JAVAME微型版手机软件开发JAVASE标准版桌面应用程序JAVAEE企业版企业级应用开发2.java语言特点:1.简单没有C、C++中的头文件,指针,运算符重载2.面向对象可以开发出较大型的应用程序3.分布式通过网络访问应用程序,突破空间限制4.健壮性(编译时错误检测)消除有出错倾向的状态:指针5.安全性(蠕虫病毒)禁止运行时堆栈溢出、内存空间未授权读写6.可移植性JVM3.JAVA的特性、核心机制:特性:封装:对外部不可见,保护类中的操作不被外部直接访问属性私有化,提供公共的get、set方法封装的好处:1.数据更安全,可以在方法内增加验证2.可以让调用者不去关心实现的细节,重用继承:扩张类的功能多态:是允许将父对象引用一个子对象的技术Employeeemployee=manager;允许父类对象来引用子类对象,但是实际运行过程中调用的是子类的方法或者属性编译时调用父类方法,运行时调用的是实际引用类型的方法,这种现象叫做动态绑定多态现象:运行时多态、编译时多态1.编译时多态:方法的重载(不建议举例)2.运行时多态:方法的覆盖(建议举例)核心机制:虚拟机(JVMjavavirtualmachine)垃圾回收机制garbagecollector4.JDK:(JavaDevelopmentKit)1995年SUN公司JDK1.098年JDK1.2接下来是JDK1.31.4目前JDK1.5已经更名为JAVA5.0正在使用的是java6.0版本.JDK安装目录介绍:Bin编译器和工具Demo演示DocsHTML格式的类库文档Include用于编译本地方法的文件Jrejava运行环境文件Lib类库文件Src类库源文件5.Java运行环境变量配置:JAVA_HOME:JDK安装目录,方便在后面两个环境变量的配置中直接被调用即可path:%JAVA_HOME%\bin列出可执行文件的搜素路径classpath:%JAVA_HOME%\lib\tools.jar%JAVA_HOME%\lib\dt.jar.(当前路径)是java加载类的路径,只有在classpath设置的路径中的类才能被加载6.Java中注释:1.单行注释://2.多行注释:/**/3.文档注释/***/通过javadoc命令将文档注释提取出来生成java帮助文档:Java的三种注释:7.Class与publicclass区别:如果一个类声明的时候使用了public进行声明,则类名称必须与文件名称完全一致,如果类的声明使用了class的话,则类名称可以与文件名称不一致,但执行的时候肯定执行的是生成后的类名称。第二章标示符,运算符1.标示符:在java语言中用来给一个类、变量或方法命名的符号标示符的命名规则:1.以字母,“_”或“$”符号开头2.可以包含字母、“_”、“$”和数字符号3.大小写敏感4.不能与保留关键字冲突5.没有长度限制Java中命名规范:1.类名,接口名:每个单词的首字母应该大写2.字段、方法以及对象:第一个单词首字母应小写,其他单词首字母大写3.常量:全部用大写字母表示4.Java包(Package):它们全都字母小写5.命名要做到见名知意2.运算符:1.算数运算符:2.自增,自减运算符:3.关系运算符:boolean型运行结果truefalse4.逻辑运算符:&&||!支持短路运算&&:左边表达式为false,右边表达式不会被执行||:左边表达式为true,右边表达式不会被执行5.赋值运算符:=不要将其与(==)等号运算符混淆6.运算符:&、|、~、^、、、1.~:取反。1变0,0变12.&:按位与。有0为03.^:按位异或。相同为0,不同为14.|:按位或。有1为17.instanceof运算符:左面操作一个对象,右面操作一个类,当左面对象是右面的类创建时,该运算符的结果是true,否则是false。第三章表达式,语句:1.表达式:算术表达式关系表达式逻辑表达式赋值表达式2.语句:方法调用语句表达式语句复合语句控制语句package和import语句控制语句:1.条件控制语句ifif-else2.switch开关语句switch(){case}switchcase:说明:1.表达式expression可以是以下四种基本数据类型和枚举类型(byte,short,int,char)2.case子句中的值必须是常量,而且所有case子句中的值应是不同的。3.case通常与break语句联用,以保证多路分支的正确实现,多个case可以公用一组执行语句。循环语句:1.for循环语句for2.while循环语句3.do-while循环语句4.break和continue语句break语句,跳出它所在的循环语句或switch语句,并从紧跟该循环语句或switch语句后的第一条语句处执行continue语句,用来结束本次循环,跳过循环体中下面尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环第四章数据类型,字符串,数组:1.数据类型:基本数据类型:数值型整数型:字节型:byte(1个字节)整型:int(4个字节)长整型:long(8个字节)短整型:short(2个字节)实数型:浮点型:单精度浮点型:float(4个字节)双精度浮点型:double(8个字节)}字符型{char(2个字节)}布尔型{beloon型(1位):true或者false}空类型:NULL;引用数据类型:{数组接口类}:就是将一个堆内存的空间使用权交给了其他对象;自动类型转换:低优先级数据转换为高优先级数据:byte-short-char-int-long-float-double强制类型转换:高优先级数据强制转换为低优先级数据例:doubleb=3.2222d;inta=(int)b;3.字符串:==与equals的区别:在Object类中equals(Objectobj)方法与==的比较结果一致的但是equals是一个方法可以被重写,例如在String类中equals比较的就是字符串的内容String本身是一个类,在String类中定义的构造方法:publicString(Stringoriginal)可以接收一个String类的对象,并重新实例化String对象,String还可以采用直接赋值的方式进行对象的实例化一个字符串是使用“”括起来的那么一个字符串的常量实际上本身就属于String的一个匿名对象Stringstr=hello;与Stringstr=newString(hello);有什么区别?、Stringstr=hello如果内存已经为hello分配了内存空间,那么Str只要指向hello内存对象地址;Stringstr=newString(hello);内存中重新分配一块内存区域给hello,str指向hello,也就是内存中有两个hello的对象了,而且指向的地址不一样。String与StringBuffer的区别?他们都可以存储和操作字符串;StringBuffer使用来存储字符串变量,他的对象是可以更改和扩充的,也可以用来存储字符串常量;String是用来存储字符串常量,存储的字符串是不可以更改的字符串的内容一旦声明之后则无法修改,实际上字符串变量的改变改变的是内存空间的地址的指向,而本身的字符内容没有任何的变化。1.根据字符串中的索引找到指定位置的字符:publiccharcharAt(intindex)2.将字符串变为字符数组:publicchar[]toCharArray()3.将字符数组变为字符串:将全部的字符数组变为String类型:publicString(char[]value)将部分的字符数组变为String类型:publicString(char[]value,intoffset,intcount)4.String-字节数组:publicbute[]gerBytes()字节数组-String:全部:publicString(byte[]bytes)部分:publicString(byte[]byres,intoffset,intlength)5.判断是否以指定的字符串开头:publicBooleanstartsWith(Stringprefix)判断是否以指定的字符串结尾:publicBooleanendsWith(Stringsuffix)6.替换操作:publicStringreplaceAll(Stringregex,Stringreplacement)7.字符串截取:全部截取:publicStringsubstring(intbeginIndex)部分截取:publicStringsubstring(intbeginIndex.intendIndex)8.字符串拆分:publicString[]split(stringregex)9.字符串查找:取得指定字符串的位置:publicintindexOf(Stringstr),publicintindexOf(Stringstr,intfromIndex)此方法返回int型的数据,如果查找到了怎返回位置,查找不到,返回-1直接查找:publicBooleancontains(Strings)10.字符串的其他操作:去掉左右空格:publicStringtrim()取得字符串的长度:publicintlength()转大写:publicStringtoUpperCase()转小写:publicStringtoLowerCase()4.数组:属于引用数据类型,使用时需要开辟内存空间;数据类型数组名称[]=new数据类型[长度];数据类型数组名称[]=null;数组名称=new数据类型[长度];关键字new只要一出现,怎肯定表示数据类型是是引用数据类型,要进行堆-栈空间的开辟二维数组:动态初始化:数据类型数组名称[][]=new数据类型[长度][长度]静态初始化:数据类型数组名称[][]={{2,3,2}{2,32,2}};char[]缺省值为0所对应的字符boolean[]缺省值为falseUser[]自定义类型数组缺省值为null求数组的长度:ar.length属性二维数组循环打印:for(intm=0;mh.length;m++){for(intn=0;nh[m].length;n++){System.out.print(h[m][n]);}System.out.println();}数组拷贝:System.arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength);src-源数组。srcPos-源数组中的起始位置。dest-目标数组。destPos-目标数据中的起始位置。length-要复制的数组元素的数量第五章类,方法,关键字保留字:1.类:类的基本概念:是用来封装一类对象的状态和方法,类是用来定义对象的模板。是由属性和方法组成;类的属性全部保存在对内存中,全部的方法保存在全局代码中。抽象类:包含一个抽象方法的类称为抽象类,抽象方法是只声明而未实现的方法,所有的抽象方法必须使用abstract关键字声明,所有的抽象类也需要使用abstract关键字声明,对于抽象类,不能直接进行实例化的操作,但是可以声明,如果要想使用抽象类,则必须依靠子类,抽象类是必须被子类继承的,而且被继承的子类需要实现抽象类中的全部抽象方法;抽象类中允许有构造方法,但是构造方法是不能直接调用的,是交给子类去调用的,子类对象的实例化过程中永远是先调用父类中的构造方法---实际上来讲抽象类就比普通类多了一个抽象方法而已抽象类中的属性如果要想初始化,则肯定还是依赖于构造方法内部类:作用1.内部类可以很好的实现隐藏,也就是封装性。一般的非内部类,是不允许有private与protect
本文标题:Java基础知识总结
链接地址:https://www.777doc.com/doc-4648776 .html