2020年JAVA基础知识重点总结.doc_第1页
2020年JAVA基础知识重点总结.doc_第2页
2020年JAVA基础知识重点总结.doc_第3页
2020年JAVA基础知识重点总结.doc_第4页
2020年JAVA基础知识重点总结.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

java基础知识重点总结 学习要学会分清重点和难点。下面为大家了相关java基础知识重点总结,希望大家喜欢。 1.基本数据类型 整形: byte1个字节 short2个字节 int4个字节 long8个字节 字符: char2个字节 浮点数: float4个字节 double8个字节 布尔: boolean1个字节 2.java7新增二进制整数,以0b或者0B开头 3.java中字符时16位的Unicode编码方式,格式是uXXXX,其中xxxx代表一个十六进制整数 4.java中规定了正无穷大、负无穷大和零 正无穷大=一个正数除以0 负无穷大=一个负数除以零 0.0除以0.0或者对一个负数开方得到一个非数 5.在java中布尔类型只能是true和false 6.在java中没有多维数组 看似像C语言中的多维数组不是真正的数组,比如a34,a0a1a2是真实存在的,装的是地址,和c语言中动态分配为的数组一样 intb=newint34 7.Java中带包的编译方法 javac-d.Hello.java会在当前目录下生成目录树,运行java包名字.类名字 8.Java多态中的对象的filed不具有多态性,如父类对象=new子类(),对象.field是调用的父类的,即使子类中覆盖了该字段。 9.instanceof运算符 格式:引用变量名instanceof类名(或者接口)他用于判断前面的对象是否是后面对象的类,子类、实现类的实例,是返回true,否者返回false。 10.Java中基本数据类型和对应封装类之间的转化 inta=1; IntegerA=newInteger(a); a=A.intValue(); 其他的类型也是这样的。 11.抽象类和接口有什么区别? 1)abstractclass在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。 2)在abstractclass中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是staticfinal的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。 3)abstractclass和interface所反映出的设计理念不同。其实abstractclass表示的是is-a关系,interface表示的是like-a关系。 4)实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。 5)接口中定义的变量默认是publicstaticfinal型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。 6)抽象类中的变量默认是friendly型,其值可以在子类中重新定义,也可以重新赋值。 7)接口中的方法默认都是public,abstract类型的。 12.final修饰的成员变量初始化问题 类Field:必须在静态初始块中或声明该FIeld时指定初始值。 实例Field:必须在非静态初始块中或声明该FIeld时指定初始值或构造器中声明。 13.Final变量必须显式初始化,系统不会对final变量进行隐式初始化 14.java会使用常量池来管理曾经用过的字符串直接常量,例如:Stringa=java;,系统把常量字符串“java”存在常量池,当再次执行Stringb=java;a=b是true 15.final方法不可以重写,final类不能被继承 如果用private方法和finalprivate是一样的。 若果是用final修饰的方法在子类中出现,那是子类新定义的,与父类没有关系。 16.不可变类:创建后该类的Field是不可改变的。java提供了8个基本变量的包装类和string都是不可改变类。 17.线程的四种状态 1)新状态:线程已被创建但尚未执行(start()尚未被调用)。 2)可执行状态:线程可以执行,虽然不一定正在执行。CPU时间随时可能被分配给该线程,从而使得它执行。 3)死亡状态:正常情况下run()返回使得线程死亡。调用stop()或destroy()亦有同样效果,但是不被推荐,前者会产生异常,后者是强制终止,不会释放锁。 4)阻塞状态:线程不会被分配CPU时间,无法执行。 18.static和abstract不能同时修饰一个方法,没有类抽象方法 19.一个类可以又一个父类,实现多个接口,接口中Filed是public、static、final的,方法是publicabstract的 20.非静态内部类的方法访问某个变量,搜索顺序为:先内部类中方法内-内部类-外部类中如果都找不到则出现编译错误 21.非静态内部类不能有静态方法、静态Field、静态初始化块 22.在外部类之外访问内部类 访问非静态内部类:outclass.Inclassvarname=newoutclass().newInClass(); 访问静态内部类:outclass.Inclassvarname=newoutclass.Inclass(); 一:java概述: 1991年Sun公司的JamesGosling(詹姆斯高斯林)等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:JavaPlatformEnterpriseEdition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:JavaPlatformStandardEdition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:JavaPlatformMicroEdition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:JavaDevelopmentKit,java的开发和运行环境,java的开发工具和jre。 2,JRE:JavaRuntimeEnvironment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让javajdkbin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%Javajdk path=%JAVA_HOME%bin 2):临时配置方式:setpath=%path%;C:ProgramFilesJavajdkbin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:;e: 2):临时配置方式:setclasspath=.;c:;e: 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢? 要知道java是分两部分的:一个是编译,一个是运行。 javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。 java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行. 一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数. 二:java语法基础: 1,关键字:其实就是某种语言赋予了特殊含义的单词。 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。 2,标示符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含0-9、a-z、$、_; 注意: 1),数字不可以开头。 2),不可以使用关键字。 3,常量:是在程序中的不会变化的数据。 4,变量:其实就是内存中的一个存储空间,用于存储常量数据。 作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。 特点:变量空间可以重复使用。 什么时候定义变量?只要是数据不确定的时候,就定义变量。 变量空间的开辟需要什么要素呢? 1,这个空间要存储什么数据?数据类型。 2,这个空间叫什么名字啊?变量名称。 3,这个空间的第一次的数据是什么?变量的初始化值。 变量的作用域和生存期: 变量的作用域: 作用域从变量定义的位置开始,到该变量所在的那对大括号结束; 生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了; 数据类型: 1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型:数组、类、接口。 级别从低到高为:byte,char,short(这三个平级)-int-float-long-double 自动类型转换:从低级别到高级别,系统自动转的; 强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量; 运算符号: 1)、算术运算符。 +-*/%:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。 +:连接符。 +,- 2)、赋值运算符。 =+=-=*=/=%= 3)、比较运算符。 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 4)、逻辑运算符。 &|!&| 逻辑运算符除了!外都是用于连接两个boolean类型表达式。 &:只有两边都为true结果是true。否则就是false。 |:只要两边都为false结果是false,否则就是true :异或:和或有点不一样。 两边结果一样,就为false。 两边结果不一样,就为true. &和&区别:&:无论左边结果是什么,右边都参与运算。 &:短路与,如果左边为false,那么右边不参数与运算。 |和|区别:|:两边都运算。 |:短路或,如果左边为true,那么右边不参与运算。 5)、位运算符:用于操作二进制位的运算符。 &| (无符号右移) 练习:对两个变量的数据进行互换。不需要第三方变量。 inta=3,b=5;-b=3,a=5; a=a+b;a=8; b=a-b;b=3; a=a-b;a=5; a=ab;/ b=ab;/b=abb=a a=ab;/a=aba=b; 练习:高效的算出2*8=21;/(max+min)/2; while(arrmid!=key) if(keyarrmid) min=mid+1; elseif(key max=mid-1; if(max return-1; mid=(max+min)1; returnmid; - java分了5片内存。 1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。 栈:存储的都是局部变量(函数中定义的变量,函数上的参数,语句中的变量); 只要数据运算完成所在的区域结束,该数据就会被释放。 堆:用于存储数组和对象,也就是实体。啥是实体啊?就是

温馨提示

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

评论

0/150

提交评论