【Java基础】
文章平均质量分 80
java常见分析
站长大人
架构师,资深Java开发工程师,AI爱好者。合作请私信
展开
-
@FunctionalInterface函数式接口深入实践附demo 多种写法 提高代码可读性健壮性
@FunctionalInterface 是Java 8引入的一个注解,主要用于标记一个接口为函数式接口。函数式接口是指只有一个抽象方法(除了默认方法和静态方法外)的接口。特点如下:唯一抽象方法:被@FunctionalInterface注解的接口必须保证只包含一个未实现的方法。如果接口中有多于一个抽象方法,编译器将会报错。Lambda表达式的载体:函数式接口是Java中Lambda表达式的目标类型。你可以通过Lambda表达式来创建该接口的实例,使得代码更加简洁和易于阅读。默认方法和静态方法不原创 2024-04-23 19:12:03 · 746 阅读 · 1 评论 -
JDK8飞到JDK17版本介绍和踩坑记录
SpringBoot3和Spring6的最低依赖就是JDK17!JDK17就是官方保证会长期支持的版本。JDK 17 最多可以支持到 2029 年 9 月份。JDK 8 支持的时间更长,可以延长到 2030 年 12 月从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。转载 2023-01-03 20:17:55 · 7457 阅读 · 0 评论 -
Java高级开发必会的50个性能优化的细节(珍藏版)
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。●1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目...转载 2019-03-21 10:47:08 · 564 阅读 · 0 评论 -
ReentrantLock-AQS源码分析
AQS,ReentrantLock源码分析转载 2022-02-07 17:49:53 · 194 阅读 · 0 评论 -
try catch finally各种情况的执行顺序(示例)
比较有意思的,基础的,容易忽略的小例子,开发的时候要注意上例子示例1public static void main(String[] args) { int i = test1(); System.out.println("main " + i); } private static int test1(){ int i=0; try { i++; System..原创 2021-10-08 10:58:17 · 299 阅读 · 2 评论 -
类加载顺序示例解析理解
通过实例加深一下理解吧 类加载顺序的认识直接影响开发的水平,包括后续设计扩展点,作用范围都有着明确的指导比如下面父子类,分别定义静态变量,全局变量,静态代码块,非静态代码块,构造方法public class ParentTest { static int x = 1; int xx = 2; static { System.out.println("x " + x); } { Syste...原创 2021-09-24 13:27:22 · 163 阅读 · 0 评论 -
lambda表达式的使用(全)
大家应该都知道jdk8的lambda表达式了,还是比较好用的,下面介绍一下用法Lambda简介Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。语法形式为 () -> {},其中 () 用来描述参数列表,{} 用来描述方法体,-> 为 lambda运算符 ,读作(goes t.原创 2021-02-17 16:49:37 · 924 阅读 · 0 评论 -
反射、静态代理、动态代理的概念与实现
反射什么是反射?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.优点:增...原创 2020-02-20 17:20:28 · 407 阅读 · 0 评论 -
javase基础知识点
switch(必须为整型或字符型){ case 1: break; case2: break; default:}(int)(math.random()*10)0_9为什么分基本数据类型和对象(不是一切皆对象吗)因为基本数据类型的包装类也为对象,基本数据类型存放在栈中,读写速度比堆快为什么会有包装类呢,因为程序中某些数据可能原创 2017-04-03 21:33:00 · 1625 阅读 · 1 评论