Java基础知识总结

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

 

一、jdk1.8新特性

之前一直知道jdk1.8添加了许多东西,也没仔细了解过,现在看过之后做一下总结。

1、lambda表达式

匿名内部类和lambda表达式的区别:

  • 所需类型不同

匿名内部类可以是接口、抽象类、具体类;lambda表达式只能是接口

  • 使用限制不同

使用lambda表达式接口中只能有一个抽象方法;匿名内部类没有限制

  • 实现原理不同

匿名内部类编译后产生一个单独的.class字节码文件;lambda表达式没有,对应的字节码会在运行的时候自动生成

2、方法引用

是指对lambda表达式只有一行代码的简写(::)

3、函数式接口

什么是函数式接口   -->   有且只有一个抽象方法的接口

4、Stream流

5、新的日期时间API

6、Optional类

二、NIO网络编程

1、TCP握手机制---三次握手(逻辑上的确认关系,确认可以传输数据)、四次挥手(断开连接)

2、UDP用户数据报协议

3、BIO 阻塞同步IO

4、NIO的三个核心组件:Buffer缓冲区、Channel通道、Selector选择器

5、ByteBuffer内存类型直接内存和非直接内存(堆内)

6、为什么要创建堆外内存,堆内进行io的时候比堆外多一步拷贝(先从堆内拷贝到堆外)

7、为什么要多一步拷贝?GC会移动对象内存,防止拷贝的时候内存地址发生改变,导致拷贝失败

8、Selector 事件驱动机制

9、Netty中的ChannelHandle

三、事务

1、事务隔离级别--Oracle默认读已提交、mysql默认可重复读

2、悲观锁、乐观锁

3、可重复读 级别已经屏蔽了脏读、可重复读、幻读(针对多个数据)

四、设计模式

1、六大设计原则

2、23种设计模式:创建型、

3、设计模式主要是为了解决什么问题,实际中有哪些应用,在什么样的情况下我们要使用设计模式

4、单例模式多种写法实际代码中使用的方式?

最安全:枚举类型

真正使用(从jdk源码中分析):双重校验锁(问题:a、性能 b、反射破坏 c、通过类加载器被多次加载)、饿汉式

5、反射加序列化,修改属性的访问级别

6、什么是静态内部类,静态内部类的作用,适用场景

7、Runtime 使用饿汉式 AbstractBeanFactory 双重校验锁

8、bean实例化就是 创建对象后将对象放到map中

9、重点掌握的设计模式:

创建型:单例模式、工厂模式、建造者模式

结构型:适配器模式、代理模式、装饰器模式、组合模式

行为型:责任链模式、观察者模式、策略模式、

10、工厂模式---解耦     -->类后面带Factory的

11、构建者模式    -->常见类后面有Builder

12、单例模式就是为了性能;工厂模式就是为了一个地方创建对象,减少修改;构建者模式一个类的构造函数超过4个,并且可选参数

13、链式调用

14、静态代理、动态代理

15、jdk动态代理,

 

java SE 基础知识指南 36. Lock(上):相比Java synchronized,JUC Lock有什么优势?19. io类库:http://java.io类库如此庞大,怎么才能全面系统的掌握它?51. 线程状态:为何synchronized和Lock这两种锁对应的线程状态不同?34. synchronized(上):线程释放锁之后,如何通知其他线程获取锁?13. HashMap(上):为何HashMap中数组的大小必须是2的幂次方?37. Lock(中):如何使用AQS(抽象队列同步器)实现JUC Lock? 阅读详情

相关推荐

2025.1.16——五、LoveSQL1 sqlmap文件类|万能密码

题目来源:BUUCTF[极客大挑战2019]LoveSQL1

2402_87387800的博客 1048

java基础知识jdk1.8的日期时间)

JDK1.8 新增特性(一)~ 1.1 获取对象的方法 * 方式1 通过静态方法 now(); 例如:LocalDateTime ldt = LocalDateTime.now(); * 方式2 通过静态方法of()方法参数可以指定年月日时分秒 例如:LocalDateTime of = LocalDateTime.of(2018, 12, 30, 20, 20, 20); 1....

Liyuehahaha的博客 1341

Vofa+使用笔记(1):用Vofa+通过串口连接显示波形

1. 介绍 Vofa+有三种协议设置 rawdata:你发什么就显示什么,跟普通的串口助手一样 firewater:最简单在VOFA+里绘制波形的协议,建议仅在通道数量不多、发送频率不高的时候使用。 justfloat:有一定的数据格式,此协议非常适合用在通道数量多、发送频率高的时候。 2. 使用步骤 设置号下面三个地方,使用的协议以及传输的方式 拉出控件 (最开始上位机没有识别到你的数据的时候,右边是没有数据显示的,如果你想要y轴显示什么数据,右边设置显示也可以,右键波形图然后Y轴设置也行) 把进

苏释州的博客 5万+

面试总结之[JDK1.8新特性]

这几天面试中,问到JDK的基本都会问到有关JDK1.8的新特性,基于这点,自己简单总结了下; 看到网上有个人总结了这样一句话,感觉比较通俗易懂; 速度更快 – 红黑树 代码更少 – Lambda 强大的Stream API – Stream 便于并行 – Parallel 最大化减少空指针异常 – Optional 1:HashMap 有人会在问你HashMap的时候会问你...

有糖哥 2万+

JDK1.8新特性总结 - 篇三(并行流与顺序流)

. 并行流与串行流 并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块中的流。JDK8中将并行进行了优化,我们可以很容易的对数据进行并行操作。Stream Api可以声明式的通过parallel()与sequential()在并行流和串行流(又被称作“顺序流”)之间进行切换。 二. Fork/Join框架 Fork/Join框架就是...

爱喝咖啡的程序员的博客 1910

JDK1.8的新特性 | 技术

JDK1.8目前在企业中已经广泛被应用,今天我们将学习以下方面的新特性: · Lambda表达式 · 函数式接口 · 方法引用 · 接口的默认方法和静态方法 · Optional · Streams · 并行数组 Lambda表达式 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数...

黑马程序员官方博客 1万+

JDK1.8几大新特性

1.接口这允许使用default方法,并在一个类实现该接口后能直接调用default: interface JdkTest{ public abstract void PrintHello(); default void test(){ System.out.println("this is a test method"); } } public class demo2 implem...

weixin_36369311的博客 2073

java基础知识_什么才是java基础知识

作者:晓风轻来源:https://zhuanlan.zhihu.com/p/28615617近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java基础知识?又怎么样才算掌握了java基础知识呢?这个问题还真值得仔细思考。我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。编码的前几年,很长一段时间觉得java简单...

weixin_39846898的博客 167

Java基础知识

标识符: 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。合法的标识符:关键字:Java语言中已经赋予了特定含义的变量:程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。变量的使用:Java 中的注释有三种:Java中的循环语句同c++与c中类似,共有三个for(初始化表达式;条件表达式;迭代语句) { 循环体语句; }whil

qq_62632865的博客 1752

Java基础知识脑图总结

Java基础知识脑图总结 Java基础知识.png

疾风知劲草,智者必怀仁 364

JAVA基础知识总结

java基础知识总结

wei980704的博客 301

java基础知识

JAVA 基础知识

Paradise丶GeMinI的博客 381

JAVA基础知识图解

JAVA基础知识图解

qq_42895153的博客 213

java基础知识总结

java 基础包含语法、面向对象,异常处理、文件操作等方面。

yvya_的博客 3162

java基础知识

java基础知识

qq_44616158的博客 1750

Java基础知识梳理

Java基础知识梳理上图的放大图

学习是快乐的~ 394

Java基础知识思维导图

两套Java基础知识的思维导图

AthlenaA的博客 1272

【快速复习】Java 基础知识

Java基础知识,用于快速复习,突击面试。

2301_79732484的博客 1434
上一篇: 使用LayUI的第三方组件treeSelect,报错:Cannot read property 'getNodeByParam' of null
with-you
博客等级 码龄9年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值