1. System类
属性:out、in、err
方法
作用
currentTimeMillis()
获取当前时间戳
exit()
退出,参数为0表示正常退出,非0表示异常退出
gc()
请求垃圾回收
getProperty
获取参数
public class SystemTest {
public static vo...
直接创建类的对象,直接使用,不赋值给对象,就是匿名对象
问题
常见的基本数据类型 int char 这种可以进行比较排序,那么引用数据类型(对象)该怎么进行排序呢?
有两种方法,自然排序(Comparable)、定制排序(Comparator)
方式一
在需要比较的类实现Comparable接口,实现compareTo方法。
public class ComparableTest {
public ...
在Date后引入的Calendar也不能很好的规范时间的数据类型,
在JDK8.0时引入了Time这一新的包
方法不用背,现用现查也可以
之前存在的问题
Date和Calendar修改时间时,本身的数值也会改变。如果保留原数值还要备份,很麻烦。
偏移量,创建时间的年份会自动加1970年。 如果创建参数是2000,创建出来就会是3970年。很麻烦
格式化,S...
System类的currentTimeMillis()
获取当前时间的毫秒,long类型,时间戳
当前时间与1970年1月1日之间的毫秒数
两个Date类
java.util.Date
public classDateDemo {
public static void main(String[] args) {
Date ...
总的来说
就是StringBuffer和StringBuilder比String增加了可更改性质
StringBuffer和StringBuilder的区别就是jdk5.0后增加的Stringbuilder线程不安全,没有synchronized修饰,但是它的效率要高。
三各类的对比
String
StringBuffer
StringBuilder
...
类的声明
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
final:不可被继承、
Serializable:可序列化的接口。---凡是实现序列化接口的类就可以通过网络、IO流进行传输。
Compar...
joulemeter
下载地址:https://joulemeter.cn.uptodown.com/windows/post-download/1548
在JUC高并发中会有详细讲解
现有问题
并发线程很多,有很多线程执行的时间很短,就需要频繁的创建和销毁,使得系统效率降低。
思路
提前创建好多个线程,放入线程池,使用时直接提取,使用后放回线程池,增加线程的复用性。
好处
提高了程序执行的效率。
线程提前创建好
提高资源复用率
可以设置相关参数对池中线程使用进行管理
例子
import java.util...
Callable同Runnable一样是个接口,实现该接口并实现call方法,将同步代码放入call方法中
使用它的好处是可以在方法抛出异常,无需再方法内部处理了,否则try catch太多
它还可以有返回值类型,无需返回就返回一个null
Callable
Runnable
灵活,使用throws处理异常
可以有返回值
使用了泛型...
密匙:J8WVF-9X3GM-4WVYC-VDHQG-42CXT
(1)到系统输入密匙
(2)win+R, 输入powershell, 回车, 再在弹出的窗口内输:
irm https://get.activated.win | iex
irm massgrave.dev/get.ps1 | iex
(3)弹出窗口选[1]
(4)回到系统查看会显示”激活成...
概念
当需要多个线程共同完成一个任务时,需要它们有规律的执行,多个线程之间需要一些通信的机制,以实现共同操作一份数据。
说是通讯机制,并不是让线程之间会交流讲话,而是用几个方法来控制线程直线通断的顺序。
例如:线程a生产包子,线程b负责吃包子。b线程就需要等a线程执行完毕才可以执行。
实例,两个线程交替打印100以内的数字
使用notify和wait方法交替...
概念
不同的线程都在等待对方的线程结束而不放弃,造成了大家都在等待情况叫做死锁。
public class deadLocker {
public static void main(String[] args) {
StringBuilder sb1=new StringBuilder();
StringBuilde...
之前讲的单例模式中的懒汉模式是在调用时才会生成一个对象以供使用,
为了防止同时多个线程创建多个对象就需要考虑到线程安全的问题。
方式一:
给getInstance()添加synchronized符号
public class BankTest {
static Bank b1=null;
static Bank b2=null;
pu...