《java基础》
文章平均质量分 87
java基础知识记录
mz♪
记录学习。
展开
-
java中的CAS操作以及ABA问题
引出 java锁在并发中占据着重要的地位,但是有一个缺点就是,当一个线程没有获取到锁的时候就会被阻塞挂起,等到锁被释放时再重新被唤醒去竞争锁这个是比较耗费系统资源的。因为java的线程是映射到操作系统原生线程之上的,如果要阻塞或唤醒一个线程就需要操作系统介入,需要在户态与核心态之间切换,这种切换会消耗大量的系统资源,因为用户态与内核态都有各自专用的内存空间,专用的寄存器等,用户态切换至内核态需要传递给许多变量、参数给内核,内核也需要保护好用户态在切换时的一些寄存器值、变量等,以便内核态调用结束后切换原创 2021-03-13 17:43:48 · 2715 阅读 · 8 评论 -
java基础复习-----反射
什么是反射 反射机制是指程序在运行过程中,对任意一个类都能获取其所有的属性和方法,并且对任意一个对象都能调用其所有的属性和方法。这种动态获取类和对象的信息,以及动态调用对象的方法的功能被称为java语言的反射机制。java反射常用APIClass类:用于获取类的属性、方法、构造器等信息。获得类相关的方法方法说明forName(String className)根据类名返回类的class对象getName()获取类的完成路径名getPackage()获取类原创 2021-02-27 18:16:41 · 761 阅读 · 4 评论 -
java基础复习-----泛型
泛型泛型的定义和意义泛型的定义和意义 泛型的本质是参数化类型,提供了编译时的安全检测机制,允许程序在编译时检测非法的类型。使用泛型的好处就是:① 代码复用,多种数据类型执行相同的代码;② 在编译期就能够检查类型是否安全,同时所有强制性类型转换都是自动和隐式进行的,提高了代码的安全性和重用性。一些常用的泛型标记:泛型标记说明T(Type)表示java的类型,包括基本的类和开发者自定义的类 ,比如T ObjectE(Element)表示在集合中存放的元素,是在集合中使用的原创 2020-11-01 20:30:22 · 660 阅读 · 3 评论 -
java基础复习-----集合:list、set、map
Collection与Collections Java Collections框架中包含了大量的集合接口以及这些接口的实现类和操作他们的算法:排序,查找,反转,复制,替换,取最大值等等。主要有List(列表)、Set(集合)、Queue(队列)、Stack(栈)、Map(映射表)等数据结构。 其中List、Set、Queue、Stack都继承自Collection。 Collection是整个集合框架的基础,它里面存储一组对象来表示不同类型的Collections,他的作用是提供维护一组对象的基本接原创 2020-10-23 18:43:25 · 387 阅读 · 0 评论 -
JVM总结2--类加载与对象的创建
jvm中的类加载与对象创建类的加载class文件结构类加载过程类加载器双亲委派模式自定义加载器对象的创建类的加载类加载过程 类加载过程为:加载→连接→初始化。其中连接又可分为:验证→准备→解析 三步。https://www.jianshu.com/p/cc66138d72b1类加载器双亲委派模式自定义加载器 对象的创建...原创 2020-08-31 19:27:22 · 433 阅读 · 0 评论 -
JVM总结1--JVM内存区域和垃圾回收
jvm知识点整理JVMjava虚拟机结构java虚拟机的基本结构jvm内存区域垃圾回收Minor Gc和Full Gc如何确定垃圾垃圾收集常用的算法JVM Jvm是一个可运行java代码的假想计算机,Java 源文件,通过编译器,能够生产相应的.Class 文件(字节码文件),而字节码文件通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。虽然对于每一种平台解释器有所不同,但实现的虚拟机是相同的。就这是java语言能够跨平台的原因。Hotspot java发展至今,先后出现过不少j原创 2020-08-11 22:54:51 · 506 阅读 · 0 评论 -
java基础复习----复制、浅拷贝与深拷贝
浅拷贝与深拷贝前言浅拷贝与深拷贝浅拷贝概念浅拷贝的实现方法深拷贝概念深拷贝的实现方法总结前言 以前遇到过一个BUG,大概是这样的:@Datapublic class Company { private String companyName; private String companyAddr; //公司员工 private List<Person> personList; public Company(String companyName原创 2020-06-27 00:18:27 · 492 阅读 · 0 评论 -
使用lambda表达式将list中某一属性相同的数据分组
在java8之前可以使用遍历使用map进行分组。而在 Java 8 lambda表达式出现后,可以使用 groupingBy 收集器,一行代码实现,简单方便:Map< , > Map = list.stream().collect(groupingBy(*::get*)); (第一个*表示实体类,第二个*表示实体类中属性,如果不是实体类,可直接写)...原创 2019-10-15 09:27:41 · 8852 阅读 · 1 评论