自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java8接口新特性

1、Java8之前接口定义:只可以定义抽象方法,不能定义非抽象方法的特殊类型2、Java8接口的定义:即可以定义抽象方法,也可以定义非抽象方法如果需要定义非抽象方法,那么当前方法需要使用static或者default修饰3、改变的原因:改变之前:如果定义了一个接口,接口已经参与使用,后续想给接口增加一个功能,只能添加抽象方法,但是接口已经在使用,新增一个抽象方法之后,使用过该接口的类型就报错。

2023-08-17 23:11:56 728 1

原创 java反射

反射是指在加载类型之后,通过该类的字节码对象来获取需要的信息,然后通过获取到的信息来实现对应的功能,这种机制就是反射。由于这种动态性(程序运行时),可以极大的增强程序的灵活性和扩展性。根据类的字节码对象获取该类的构造方法,并创造该类对象。

2023-08-16 22:47:17 115 1

原创 类加载器相关

类加载器是负责加载类的对象。java 万物皆对象 既然是对象就有属于它的类型。

2023-08-16 20:06:35 102 1

原创 虚拟机类加载机制

如果需要使用某一个类型,虚拟机把描述类的数据从class文件中加载到运行内存,并对数据进行校验,转换解析和初始化,最终形成可以被java虚拟机直接使用的类型, 这就是虚拟机的类加载机制。

2023-08-16 20:00:43 106 1

原创 单例设计模式

1、模式:生产实践中,积累的经验、办事情的套路2、设计模式:在设计类型、设计接口、设计方法、完成某些架构的时候使用的套路,就是设计模式。软件开发过程中,有23种设计模式,在不同的场景下、在不同的需求中,使用的是不同的设计模式。3、单例模式:在当前系统中,某个类型的对象,最多只能有一个,就需要使用单例设计模式4、单例模式的设计原则:1、构造方法私有化2、在类中创建好该类对象3、在类中,给外界提供获取该对象的公有方式。

2023-08-16 19:45:10 68 1

原创 File类

可以用来操作磁盘上文件或者文件夹的类型,可以通过将文件或者文件夹的路径封装为File类对象,通过类中提供的方法操作。

2023-08-14 23:00:15 55

原创 Properties

它是一个双列集合,是一个Map体系的集合类,是Hashtable的子类。

2023-08-13 21:41:48 48 1

原创 Thread线程类

(4)interrupt可以强制唤醒正在休眠的线程(一旦休眠的线程被强制唤醒,会出现线程 中断异常)(3)使用该方法,会出现一个编译时异常:InterruptedException 线程中断异常。(2)如果在一个重写的方法中,使用sleep(),只能对该异常进行捕获处理,不能声明。注:(1)如果在一个普通的方法中,使用sleep(),可以声明异常也可以捕获异常。如果没有给线程设置名称,线程会有一个默认名称:Thread -x(从0开始)

2023-08-13 19:17:12 59 1

原创 多线程的三种实现方式

在创建Thread对象时,调用有参构造(Runnable任务类对象),一路调用init方法,最终将传进去的Runable任务对象赋值给自己的成员变量target,在嗲用start方法时,底层会调用start0方法(与继承Thread方法一致),该方法是native修饰,代表本地方法,回头再调用run方法,会进行if判断:判断自己的成员变量target是否为空,不为空则调用target,run()继承方式:某个类继承了Thread类,那么就无法继承其他业务中需要的类型,就限制了我们的设计,扩展性较差。

2023-08-13 16:56:11 153 1

原创 Arrays工具类

1、自己写的ArrayTool功能较弱,在jdk中早就已经提供了,使用jdk中已经提供好的类型。比较arr1和arr2数组中的元素是否全部相等。将arr数组中的数据,都以字符串的形式显示出来。在arr数组中,查询key元素的索引。使用val值,将arr数组填充满。前提:数组本身是升序排列。将arr数组进行升序排序。

2023-08-07 20:08:49 62 1

原创 有序接口List集合

是Collection的一个子接口。

2023-08-07 19:54:57 103 1

原创 Collection集合

1、单词:收集、集合2、单列集合的顶层接口,定义的是所有单列集合中共有的功能。3、Collection是一个接口,不能直接创建对象,随意找一个实现类创建对象使用接口类型的引用,指向实现类的对象Collection类型的引用,指向 ArrayList类型的对象(只能调用接口中的方法)

2023-08-07 16:33:09 44 1

原创 Arrays工具类常用方法

比较arr1和arr2数组中的元素是否全部相等。将arr数组中的数据,都以字符串的形式显示出来。在arr数组中,查询key元素的索引。前提:数组本身是升序排列。

2023-08-06 13:19:52 57

原创 StringBuilder类型方法及其扩容方式

replace(int start, int end, String str) :将指定索引范围的字符换成新的字符串(包含头不包含尾)(1)capacity() :返回对象的初始容量 capacity() 获取StringBuilder容器的大小。(2)length():返回字符串对象长度 length() 获取StringBuilder元素的个数。StringBuilder对象中维护的是一个字符数组,所以可以获取字符数组的长度和元素的个数。

2023-08-06 10:58:34 414

原创 HashSet集合的底层原理

1、要存储一个元素x,先获取x的哈希值,在将该哈希值进行处理,处理之后,获取一个 存储的位置2、判断该位置是否有元素,如果该位置没有元素(就代表x的哈希值是唯一的),直接存入。3、如果该位置有元素(集合中有元素的哈希值和x相同),就再次调用equals(重写)方法比较这些元素的属性值4、如果属性值也相同,就直接去重5、如果属性值不相同,就存入到集合。

2023-08-05 23:44:24 114 1

原创 泛型的相关应用

//类中使用泛型,需要在类名后面进行声明 //在创建对象的时候,就需要确定泛型的类型了,需要传递已知类型//传Integer, Double,在该对象中T代表的是Integer类型 E代表的就是double类型 //创建对象 泛型就可以确定了 //类中使用泛型,需要在类名后面进行声明//在定义变量的时候不确定age和salary是什么类型,用一个符号代替(泛型) 注意事项:(1)如果要在类中使用某个泛型的话,需要先在类上进行声明,声明之后才可以使用(2)类中使用

2023-08-03 21:56:52 67

原创 Calendar类型

2、c.get(字段) 可以获取对应的数据。如c,get(Calendar.YEAR) c,get(Calendar.HOUR)如c.add(Calendar.YEAR,10);输出模式:打印输出 System.out.println(c.get(Calendar.YEAR));3、c.set(参数) 可以重新设置字段的值 参数可以为1-6,分别为年,月,日,时,分,秒。4、c.add(字段,int);

2023-08-01 22:47:48 102 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除