发表时间:2022-03-25来源:网络









int read(byte[] b):返回值是读取到的字节的数量,而不是值本身
以读取存储"abcdef"的txt文件为例:
如何把读取的内容依次输出:
初版:
终极改进版:
catch与finally中的内容同上

仍以读取“abcdef”为例:

仍以读取“abcdef”为例:




此时,会自动在原文件的末尾写入,而不会清空原文件内容再写入


整体框架一模一样:














例子:手写一个日志工具
定义一个日志类:
进行测试:
输出结果:

















用于将java对象存储到硬盘文件中,是将java对象保存下来的过程。



用于将硬盘上的数据恢复到内存中,并恢复成java对象的过程。






从ArrayList的源代码学习手动设置序列化版本号:


属性配置文件内部的格式:






以下面例子:
首先main方法会通过一个主线程执行(在一个栈区),当代码执行到myThread.start()时,此时start()方法会开辟出另一块栈内存空间,一旦开辟出来空间,start()方法就结束了,mian方法会继续往下执行。而与此同时,由于start()开启了myThread线程,因此在新开辟的myThead栈内存区会自动调用run方法(类似于main)执行。因此,main方法在start()代码执行结束之后,main的主线程与myThread的分支线程并发,同时执行。

只有执行start()才会去为新的线程开辟新的栈内存。
而如上图所示,在main方法中调用myThead.run()方法,和普通的方法调用一样,在main方法的栈区调用run()方法压栈,然后执行,而不会开辟新的线程,也不能实现并发,只有执行完run()方法体重的代码后,main方法才会继续往下执行。






这是java.lang.Thread包下的方法:currentThread()





注意:sleep()是Thread类的静态方法,即使用引用.sleep()的方式去调用sleep方法,但本质还是会转换成类名Thread.sleep()的方法执行,来阻塞sleep代码所在当前的线程。


缺点:容易丢失数据,因为这种方式是直接杀死线程,线程没有保存的数据会丢失。

我们可以在else中的方法体中执行保存数据的操作,将数据保存完毕之后再return即可。



最高10,默认5,最低1






线程同步机制的语法:
synchronized(){
}
其中小括号()中的对象是,被若干指定线程共享的对象,从而实现若干指定线程对此对象的访问需要排队,而不能同时进行,从而实现了线程的安全和同步。







以上都是排它锁
还有互斥锁(后续学习)










































以自己定义的student类为例:



















[修饰符列表] @interface 注解类型名{
}





并且可以在运行时被反射机制所读取。



别人调用时,会发现已过时的方法中间会有一道横杠。





在使用注解的时候,如果属性数组中只有一个元素,大括号可以省略


皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14