自定义博客皮肤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)
  • 收藏
  • 关注

原创 Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)

1、什么是反射Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。一张图来表示:如果编译不知道类或对象的具体信息,此时应该如何做呢?这时就要用到反射来实现。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。

2024-05-12 17:05:34 1131

原创 Java泛型

并且以上操作存在一些问题:当我们将一个对象放入集合中,集合不会记住此对象的类型,当再次从集合中取出此对象时,这个对象的编译类型变成了Object类型,但其运行时类型依然为其本身类型。(注意:泛型只是作用于代码编译阶段,在编译过程中,对于正确检验泛型结果后,会将泛型的相关信息擦除,也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型,即“参数化类型”。使用通配符可以引用其他各种参数化类型,通配符定义的变量主要用作引用,可以调用与参数无关的方法,不能调用与参数有关的方法。

2024-05-09 00:46:14 950 2

原创 JDK1.8新特性-lambda表达式与接口中的默认方法和静态方法

Lambda表达式(也称为闭包)Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中),或者把代码看成数据。Lambda表达式用于简化Java中接口式的匿名内部类。函数式接口就是一个具有一个方法的普通接口。像这样的接口,可以被隐式转换为lambda表达式。(注意:当返回值只有一句话时,可以不使用大括号,如果写return必须带大括号。默认方法与静态方法并不影响函数式接口的契约,可以任意使用。(参数1,参数2...) -> { ... }我爱学习English。我爱学习English。

2024-05-06 18:02:52 543

原创 Java对象比较器

在Arrays类中有很多方法,Arrays.sort方法可实现对象的排序操作,例如: int []arr={1,5,9,3,2,6,4}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); String[] brr={"java","python","易语言","R语言"}; Arrays.sort(brr); System.out.pri

2024-05-06 00:10:20 577 1

原创 Java常用API之常见类及其相关操作(Math类与Random类以及日期操作类)

public Date(long date):表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。SimpleDateFormat(可以使用):实现日期和文本之间的转换(即Date和String类型间的转换)类 Date 表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间。(1)、直接使用(Math所在的包java.lang为默认引入的包)

2024-05-05 20:47:22 1073 1

原创 Java常用类库API之字符串操作及面试题(含StringBuffer与StringBuilder相关问题)

在Java中String类可以表示一个字符串,String类实际上是使用字符数组存储的。

2024-04-30 13:48:55 1076 1

原创 Java异常处理及相关面试题

在Java中,已经提供了很多的异常类的定义,但是我们在实际项目开发中,可能需要使用一些自己的异常类,那么可以通过继承Exception类或已有的异常类的方式完成一个自定义异常类的操作。在使用自定义异常时,根据实际的业务要求,来决定使用哪个作为父类。

2024-04-28 15:49:55 812 1

原创 Java设计模式之OO原则

新对象的某些功能在已创建好的对象里已实现,那么尽量用已有对象提供的功能,使之成为新对象的一部分,而不要再重新创建。首先要知道的是OO是指面向对象(OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程))高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。不要存在多于一个导致类变更的原因,即一个类只负责一项职责。一个对象应该对其他对象保持最少的了解。(2)合成/聚合复用原则。

2024-04-26 18:29:30 193 3

原创 Java基本数据类型包装类及面试题128陷阱(享元模式)

通过源码可以看到 自动装箱valueof中i在>=low 并且<=high 时直接从缓存数组中取数不需要new对象,而不在范围内是新建了对象,所以会有b==b1是false情况,这就涉及到享元模式(文章末尾会有介绍)在Java中有一个设计的原则“一切皆对象”,Java中的基本数据类型就完全不符合这种设计思想,因为八种基本。在包装类中,可以将一个字符串变为指定的基本数据类型,一般在输入数据(Scanner)时会使用较多。当变量为128时,“==”判断结果为false,产生这种问题的原因是什么?

2024-04-23 18:22:48 1036

原创 Java数据结构之链表增删改查与递归算法

是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到是下一个节点的指针(Pointer。链表适合插入,删除,不宜过长,否则会导致遍历性能下降。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,递归算法是一种直接或者间接地调用自身算法的过程。在链表数据结构中,我们需要使用到递归算法。2、递归内存消耗大,容易发生内存溢出。它往往使算法的描述简洁而且易于理解。数组适合查找,遍历,固定长度。3、层次调用越多,越危险)链表与数组:都是线性数据结构。

2024-04-22 17:20:20 297 1

原创 Java内部类的分类以及注意事项

/创建Person对象//创建Student对象s1.print();System.out.println("这是一个成员内部类");运行结果:这是一个成员内部类(注意:在类外部创建对象写法:Person.Student s1=p1.new Student();其中,Student为Person的内部类,在外部创建成员内部类的实例,因为成员内部类需要依赖外部类的对象,在Java项目中不建议这样的写法,一般建议在外部类中定义一个方法,对外提供访问内部类的接口//创建Person对象。

2024-04-18 17:35:00 642 1

原创 Java单例设计模式

在设计一些工具类的时候(通常工具类,只有功能方法,没有属性)比如java.lang.Math中的类 ,并且可能会被频繁调用,为了节省重复创建对象所带来的内存消耗,从而来提高效率。1、懒汉式: 在第一次调用getXXX方法时,对象被创建,到程序结束后释放。懒汉式: 占用内存的时间短,延迟加载,效率低,并且在多线程访问时会有安全问题。单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。2、饿汉式: 在类被加载后,对象被创建,到程序结束后释放。2、在类中声明一个本类对象。单例设计模式基本特点。

2024-04-17 11:12:28 466

原创 Java中代码块的用法与执行顺序

在项目开发中,通常会使用静态代码块来初始化只调用一次的数据。常用的代码块(按序)是静态代码块,普通代码块,同步代码块,构造代码块。

2024-04-15 17:20:15 322 1

原创 class文件加载到内存的结构图

2024-04-12 15:50:13 315

原创 Java中static关键字的用法以及它的注意事项

在Java中,static关键字并不会影响到访问权限,能够影响到访问权限的关键字只有:public,private,protect,访问权限修饰符的具体用法可以参见下一篇文章。static修饰变量或者方法,便于在类未创建对象时进行调用,类加载时即可调用。非静态的成员变量数据是随着对象的创建而存在,随着对象被垃圾回收器回收而消失。static修饰的变量属于类变量,被创建出来的所有对象共享,只有一份。静态的成员变量数据是随着类的加载而存在,随着类的消失而消失。static修饰的方法属于类,叫做静态方法。

2024-04-10 14:11:53 295 1

原创 Java常用算法练习,(含八大排序算法)

1.利用递归算法求解数组各元素的和;2.利用快慢指针实现数组元素去重3.实现数组扩容并插入新元素。

2024-04-09 17:51:40 149

原创 最常见的用IDEA创建Java工程中控制台输出中文字符串乱码问题的解决方法

2.找到VM options选项点进去,输入-Dfile.encoding=gbk。1.在界面右上角找到Edit Configurations...3.点击Apply即可。

2024-03-24 17:07:55 132 1

空空如也

空空如也

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

TA关注的人

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