云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Java基础知识整理

Java基础知识整理

  • 62 次阅读
  • 3 次下载
  • 2025/6/25 22:11:11

? 反斜杠(\\)开头的字符; ? \%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。

5

7.3 StringBuilder

8 流程控制

8.1 case & switch

跟在case后面的值必须是常量,不能是变量或表达式;

switch(expr)中,expr是一个整数表达式,因此传递给switch和case语句的参数应该是char、short、int。

9 异常处理

Error Throwable Exception 一般与硬件有关,由系统直接处理,不需程序员处理 RuntimeException(运行时异常) IOException 其它异常,必须catch 9.1 常见的运行时异常

ArrayIndexOutofBoundsException 数组下标越界 IndexOutofBoundsException ClassCastException NullPointerException NumberFormatException 索引下标越界 强制类型转换异常 空指针异常 字符串非法转换数字格式 9.2 常见的检查时异常

ClassNotFoundExceptiom 找不到相关类 IllegalAccessException InterruptedException NoSuchFieldException 访问类被拒绝 线程被另一个线程中断 请求的域不存在 NoSuchMethodException 请求的方法不存在 抛出异常的时候,异常处理程序会按照代码的书写顺序找出“最近”的处理程序,

找到匹配的处理程序之后,它就认为异常将得到处理,然后就不再继续查找。 查找的时候并不要求抛出的异常和处理程序声明的异常完全匹配,派生类的对象也可以匹配其基类的处理程序。

6

10 内存管理

10.1 垃圾回收

10.1.1 垃圾回收的优点

java的垃圾回收机制使得程序员不再需要显示地分配和释放内存,避免了很多潜在的问题,如“内存泄露”。 10.1.2 何时垃圾回收

为了提高系统效率,垃圾回收器通常只在满足以下两个条件时才运行: ? 有对象可回收; ? 系统需要回收。

垃圾回收线程是一种低优先级的线程,只在系统空闲时才有机会运行,但在系统内存量过低的时候,可能会突发地执行来挽救内存资源。

垃圾回收器不可以被强制执行,但程序员可以通过调用System.gc()方法来建议执行垃圾回收器。 10.1.3 垃圾回收算法

根集:正在执行的Java程序可以访问的引用变量的集合;

大多数垃圾回收算法都使用了根集(root set)的概念。垃圾收集首先需要从根开始确定哪些是可达的和哪些是不可达的;从根集可达的对象是活动对象,不能作为垃圾被回收;根集通过任意路径都不可达的对象满足被回收的条件。

JVM的垃圾回收机制有多个算法,其中最简单的是引用计数法,是用来判断对象是否已经被抛弃的,其它算法都是用来确定何时回收以及如何回收。

引用计数法没有使用根集:当发现某对象的引用计数为0时,就将该对象列入待回收列表。 10.1.4 其它

? 垃圾回收只与内存有关; ? 对象可能不被垃圾回收。

如果JVM没有面临内存即将耗尽的情形,是不会浪费时间去执行垃圾回收的,即无论是垃圾回收还是finalize都不保证一定会发生,所以不能过分依赖它们。

7

10.2 finalize()方法

用途:每个对象都有一个继承自Object类的finalize()方法,用于回收除内存之外的系统资源,如文件和网络连接等。

何时被调用:一旦垃圾回收器准备好释放某个对象占用的存储空间,则将首先调用其的finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。 finalize()方法可以被明确地调用,但它不能进行垃圾回收;如果某对象的finalize()方法在执行时出现异常,该对象仍然可以被垃圾回收器回收。

11 Java I/O系统

11.1 Java NIO

(1) 为什么使用NIO?

JDK1.4的java.nio.*包中引入了新的Java I/O类库,其目的在于提高速度;速度的提高来自于所使用的数据结构更接近操作系统执行I/O的方式:通道和缓冲器。 JDK1.4以前,一直使用流的方式完成I/O,所有的I/O被视为单个字节的移动,通过Stream对象一次移动一个字节;NIO与原来的I/O有相同的作用和目的,但是它使用的是块I/O,因此效率更高。

(2) 概述 ? 什么是通道?

通道是对原I/O包中流的模拟,到任何目的地(或者来自任何地方)的数据都必须通过一个Channel对象。

通道与流的不同之处在于通道是双向的,而流只在一个方向上流动,通道可以读、写或者同时读写。

? 什么是缓冲区?

缓冲区实质上是一个容器对象;发给一个通道的所有数据必须先放到缓冲区中,同样地,从一个通道中读取的所有数据也必须先放到缓冲区中。

(3) 非阻塞技术 关键技术:观察者模式。

监控I/O端口,如果有内容进来,会自动通知,这样就不必开启多个线程死等,实现了流畅的I/O,不阻塞了。

11.2 内存映射文件(RandomAccessFile)

内存映射文件允许我们创建和修改那些因为太大而不能放入内存的文件。有了内存

8

搜索更多关于: Java基础知识整理 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

? 反斜杠(\\)开头的字符; ? \%u后接4位十六进制数字。 6 数组 6.1 初始化 Java在声明数组时并不为其分配存储空间,因此在声明数组时不能指定数组的长度。 7 字符串 String对象是不可变的,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容,而最初的String对象则丝毫未动。 当把String对象作为方法的参数时,实际上是复制了一份引用。 String:字符串常量 StringBuilder:字符串变量(非线程安全) StringBuffer:字符串变量(线程安全) 7.1 String String str = new String(“good”); ——在

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com