




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 知识点总结 1 环境搭建与开发 1.1 环境变量 JAVA_HOME:Java 的安装目录; CLASSPATH:指定一个路径列表,用于搜索 Java 在编译或运行时需要用到的类 (.class 文件) ; PATH:指定一个路径列表,用于搜索可执行文件。 1.2 Java SDK 应用 编译:Javac 类名.class ; 运行:Java 类名; 打包:jar cf test.jar test (把当前目录下的 test 目录下的所有文件压缩到 test.jar 文 件中) 。 2 变量与常量 Java 中的常量用保留字 final 来实现。 变量:局部变量(local variable) 、实例变量(instance variable) 、类变量(class variable) ;任何变量在使用前都必须初始化,局部变量必须显示初始化,实例变量在 类的构造方法被调用时初始化(分配默认值) ,类变量在类被加载时被初始化。 3 标识符 3.1 命名 在 Java 语言中,标识符的定义规则是以字母、下划线、美元符开始,后面可以跟 字母、下划线、美元符、数字。 因为 Java 语言使用 Unicode 字符集,所以对字母不仅限于英文,还可以是日文、 韩文、阿拉伯文、中文等。 区分大小写,没有字数限制。 2 3.2 关键字 3.2.1 static static 方法中不能有 this 和 super 关键字(static 方法不是“面向对象”的,而是 “面向类”的) 。 static 方法中只能访问所属类的 static 方法和变量。 static 数据成员的初始化:在第一次生成该类的对象时初始化。 3.2.2 final 1) final 数据 a) static final 更加典型的定义方式是 public static final; 占用一段不能改变的存储空间; 代表编译时常量,即在编译器就能知道其值(如果只声明为 final 或 者 static,是在运行时才知道值) 。 全部用大写字母命名,单词之间用下划线隔开。 b) final 数据与 final 引用 final 数据的值不能被改变; final 引用是指无法将其指向一个新的对象(数组也是一种引用) , 对象本身的值是可以改变的。 c) 空白 final(声明为 final 却未赋初始值) 可以做到根据对象有所不同,又保持恒定不变的特性; 必须保证使用前已经初始化:在定义处赋值或者在构造器中赋值。 2) final 参数 无法在方法中更改引用所指向的对象。 3) final 方法 禁止覆盖,防止任何继承类修改它的定义; private 方法都是 final 的,因此 private 方法无法覆盖。 4) final 类 不允许继承该类; final 类中的所有方法都隐式指定为 final 的。 3 3.2.3 transient 主要作用:防止对象的敏感信息被序列化,保证安全性。 transient 用于在一个特定对象的一个域上关闭序列化,当该对象被序列化时, transient 型变量不包含在序列化表示中。 原因:对于某些敏感信息(如密码) ,一经序列化处理,便可以通过读取文件或者 拦截网络传输的方式访问到。 4 运算符 4.1 算术运算符 4.1.1 “/”运算符 如果被除数和除数都是整数,那么商也是整数; 如果被除数和除数中有一个是浮点数,商是浮点数; 当被除数是整数类型时,零不能作为除数(运行时报错) ;当被除数是浮点型时, 除数为 0,结果为 Infinity。 4.1.2 “%”运算符 既可以对整型数据取模,也可以对实型数据取模; 任何整数都不能对 0 取模; 不管是整型还是实型的取模运算,余数的符号与被除数的符号相同(若 a%b,结 果的符号与 a 相同) 。 4.2 位运算符 :带符号右移(最高位为 0 则补 0,为 1 则补 1) :无符号右移(补 0) 如果对 char、byte 、short 类型的数据进行移位处理,那么在移位进行之前,它们 会被转换为 int 类型,并且得到的结果也是一个 int 类型的值。 对 char、byte、 short 进行运算时,都会得到一个 int 结果,必须将其显示地类型转 换回原来的类型,在窄化转换的过程中可能会造成信息的丢失。 4 4.3 赋值运算符 如果赋值运算符两边的数据类型不相同,则需要进行类型转换,即“向左看齐” ; 如果这种转换是由小向大的转换,系统将自动进行,如果是由大向小的转换,则需强 制类型转换。 5 数据类型 new 将对象存储在堆里,故用 new 来创建一个小的对象,特别是小的简单的变量, 往往不是很有效,因此,java 不用 new 来创建对象,而是创建一个并非是引用的自动 变量,这个变量直接存储值,并置于堆栈中,因此更加高效。 整型:byte, short, int, long 实型:float, double 字符型:char基本数据类型 布尔型:boolean 数组 类复合数据类型 接口 5.1 整型变量 数据类型 所占位数 值范围 byte 8 位 -128127 short 16 位 -3276832767 int 32 位 -231 231-1 long 64 位 -263 -263-1 在进行带有 byte、short、int 三种类型并存的表达式运算时,系统都会将 short 和 byte 都先提升为 int 类型。 5.2 浮点型变量 单精度浮点型 float:32 位; 双精度浮点型 double:64 位。 5.3 字符型数据 数据类型 所占位数 值范围 char 16 位 065536 单引号括起来的单个字符; 5 反斜杠()开头的字符; u 后接 4 位十六进制数字。 6 数组 6.1 初始化 Java 在声明数组时并不为其分配存储空间,因此在声明数组时不能指定数组的长 度。 7 字符串 String 对象是不可变的,String 类中每一个看起来会修改 String 值的方法,实际上 都是创建了一个全新的 String 对象,以包含修改后的字符串内容,而最初的 String 对 象则丝毫未动。 当把 String 对象作为方法的参数时,实际上是复制了一份引用。 String:字符串常量 StringBuilder:字符串变量(非线程安全) StringBuffer:字符串变量(线程安全) 7.1 String String str = new String(“good”); 在内存的堆中创建一个”good” 字符串对象 String str = “good”; 在 String pool 中创建”good”字符串对象 7.2 StringBuffer String 与 StringBuffer 有什么区别? String 的长度是不可变的,String 对象中存放的字符串对象不可修改; StringBuffer 的长度是可变的。因此如果经常需要增加、删除或者修改字符串中的某些字符,用 String 就不方便,为了提高效率节省空间,应该使用 StringBuffer。 6 7.3 StringBuilder 8 流程控制 8.1 case 2) 将获得的 Object 引用向下转型。 12 面向对象 12.1 多态 方法的多态性:重载 Outer.Inner inner = outer.new Inner(); 每个类都有一个.class 文件,由此产生 Class 对象。内部类的.class 文件有严格的 命名规则,即: OuterClassName$InnerClassName.class 14 13 容器 13.1 List 的选择 底层实现 特性 适用场合 Vector/Stac k 版本较低,避免使用 ArrayList 数组 访问快速 默认选择; 需要执行大量的随机访问 LinkedList 双向链表 插入和删除代价低廉 要经常在表中插入或删除元素 最佳做法:将 ArrayList 做为默认首选,只有当需要额外的功能,或者当程序的性 能因为经常从表中间进行插入和删除而变差的时候,才去选择 LinkedList。如果元素 数量固定,既可以使用 List,也可以使用数组。 13.2 Set 的选择 Set 的特性: 不保存重复元素,元素必须实现 equals()方法; 不保证维护元素的次序。 底层实现 特性 适用场合 HashSet 散列 查询速度最快; 默认选择 15 元素必须定义 hashCode()方法 LinkedHashSet 散列+链表 具有 HashSet 的查询速度; 内部使用链表维护元素插入的次序; 元素必须定义 hashCode()方法 TreeSet 红-黑树 可以从 Set 中提取有序的序列; 元素必须实现 Comparable 接口 13.3 Map 的选择 底层实现 特性 适用场合 HashMap 散列表 插入和查询的开销是固定的; 可以通过构造方法设置容量和负载因 子,调整性能 默认选择 LinkedHashMap 链表 取得元素的顺序是其插入次序,或者 最近最少使用次序; 插入时比 HashMap 略慢,但迭代时更 快 TreeMap 红黑树 总是保证有序; 可以通过 subMap()方法返回一个子树 WeakHashMap 弱键映射,允许释放映射所指向的对 象 ConcurrentHashMap 线程安全,不涉及同步加锁 IdentityHashMap 用 = 代替 equals() 进行比较; 插入操作不会随着 Map 尺寸变大而明 显变慢 14 多线程 14.1 线程的五种状态 创建状态:new 一个 Thread 对象后,新建的线程对象便处于创建状态;此时它已经有 了内存空间,但是还没有为其分配资源,所以还处于不可运行状态。 就绪状态:调用 start()方法你,线程便由创建状态进入就绪状态;此时,线程进入线 程队列排队,等待 CPU 为其服务。 运行状态:被调用并获得 CPU 等资源时,便进入运行状态,自动调用 run()方法。 阻塞状态:如果发生了以下几种情况中的一种,便说明线程进入了阻塞状态:1,调用 了该线程的 sleep()方法;2,调用该线程的 wait()方法;3,调用该线程的 s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级语文下册 识字(二)5 动物儿歌第1课时教学设计 新人教版
- 喜迎元旦安全教育
- 建筑施工事故调查报告案例
- 气切病人的护理
- 个人之间的借款合同样本
- 新能源发电设备供应及安装合同
- 装载机操作员劳动合同
- 货物供应合同模板
- 畜牧业可持续发展战略与政策研究考核试卷
- 2024年04月贵州德江县事业单位引进高层次及急需紧缺人才127人(医疗104人)笔试历年专业考点(难、易错点)附带答案详解
- 内墙石膏抹灰合同样本
- 猪场6S管理培训资料
- 2025随州高新技术产业投资限公司工作人员招聘【24人】易考易错模拟试题(共500题)试卷后附参考答案
- 人教版2024-2025学年度八年级下册物理期中模拟测试卷(含答案)
- 武汉数学四调试题及答案
- 生物制药考试题(附答案)
- 消防安全知识四懂四会
- 湖北省武汉市七一华源中学2024-2025学年八年级下学期3月月考数学试题(含答案)
- 第6.2课 《青纱帐-甘蔗林》课件-【中职专用】高一语文同步课堂(高教版2023基础模块下册)
- 驾驶员汛期专项安全培训
- 毕业设计(论文)-玉米收割机设计
评论
0/150
提交评论