JAVASE
文章平均质量分 84
1162210866
就这样吧
展开
-
G1和ZGC垃圾回收器学习
随着JDK17的占有率不断升高和SpringBoot3最低支持JDk17,JDK17很大概率会成为大家后续升级的一个选择,而JDK17上最重要的垃圾回收器G1和ZGC,也就显得格外重要。大家提前了解或者学习一下肯定是有用的。原创 2024-03-20 08:45:40 · 767 阅读 · 0 评论 -
深入理解synchronized
在写这篇文章的时候,有一个问题其实一直存在,写这样的文章有什么用?但是写完后,我有了一个给自己的答案。 程序员一生或许在技术上很难成为一座高山,但是站在高山上看看远处的风景也是挺好的。 从这些底层的逻辑中,最起码我得到两点可以运用在项目中的技术点。项目中编写带代码时,如果遇到启动不需要的数据,可以开启懒加载,第一次调用的时候再去执行对应的逻辑。项目中可以使用同一个字段的不同状态来表示不同的属性,达到节省空间的目的。 就这样吧,结束。原创 2024-03-03 10:44:08 · 933 阅读 · 0 评论 -
Java中Stream了解和使用
Java中Stream了解和使用 还是工作中遇到的一些事情,之前因为基础不是很好或者工作中使用的东西比较局限。所以现在在慢慢补上自己之前的一些知识盲点,可能在大家看来都是比较浅显的东西,还是那句话,博客以记录为主。这一篇博客就是补充Stream知识点。普通代码中操作List和集合类 我们写代码通常会遇到操作集合类的需求,例如找出集合中符合条件的元素,或者需要对集合中某些元素做一些操作。我之前的写法代码如下:public static void ordinary(List<Integer&g原创 2021-10-02 21:54:42 · 261 阅读 · 0 评论 -
红黑树在HashMap中的应用(二)
红黑树在HashMap中的应用(二) 上一篇博客讲述了红黑树的历史来源,阐述了红黑树的五条性质,并且解释了五条性质的原因。下面就来实际操作一下,讲解一下红黑树对于节点的插入和删除。文章目录红黑树在HashMap中的应用(二)红黑树的插入和删除2-3-4树的插入、删除操作2-3-4树的节点插入2-3-4树的节点删除红黑树的插入、删除操作红黑树的插入红黑树的删除了解删除前需要了解的红黑树删除的情况红黑树的插入和删除 在之前不止一次的说过红黑树来源于2-3-4树,所以插入和删除也是,不了解2-3-4树原创 2021-03-23 21:27:33 · 135 阅读 · 0 评论 -
Java中的参数传递类型
Java中的参数传递类型 在阅读HashMap中的源码过程中,阅读到一些方法之间的调用涉及到参数传递,有些情况下感觉最后的结果和我想的不一样,所以特地了解了一下参数传递,在这里也记录一下,防止自己忘记。文章目录Java中的参数传递类型了解一些基础概念形式参数和实际参数形参和实参的举例值传递和引用传递值传递和引用传递的举例了解Java中的传递类型对于传递类型的解析举一些小例子了解一些基础概念 在学习参数传递之前需要先了解一些基础概念,这里也会给出实例代码。方便理解。形式参数和实际参数 参数传原创 2021-03-17 15:55:55 · 913 阅读 · 0 评论 -
红黑树在HashMap中的应用(一)
红黑树在HashMap中的应用(一) 现在来填上一篇博客的坑,讲一讲红黑树在HashMap中的应用。 在讲之前,先要了解一下红黑树,再去阅读源码。本文就是这样的一个结构。但是一开始没有想到红黑树很复杂,篇幅比预期的要大,所以本次红黑树的记录分为三期,坑一定要慢慢填。。文章目录红黑树在HashMap中的应用(一)了解红黑树红黑树的历史红黑树的来源和变种二叉树二叉查找树AVL树2-3树2-3-4树红黑树红黑树的五条性质及其解释2-3-4树和红黑树之间的转换红黑树的性质解析红黑树的操作及其分析左旋转右旋原创 2021-03-14 15:10:34 · 328 阅读 · 0 评论 -
HashMap源码分析
HashMap源码分析 今天来看一下HashMap的源码,学习一下相关的知识点。不多啰嗦了,直接开始吧。 先看一段代码,是使用HashMap的代码,比较简单,先从代码入手。 Map<String, Date> test = new HashMap<>(); test.put("test1", new Date()); test.put("test2", new Date()); test.put("test1",原创 2021-03-02 14:15:14 · 168 阅读 · 0 评论 -
Java中基础运算符和知识点记录
Java中基础运算符和知识点记录 在阅读源码和其他的一些代码后,发现自己一些基础的运算符老是忘记(其实就是不懂。。。),所以专门写一篇博客记录一下,防止后续自己忘记。不多啰嗦,直接开始。 &:与运算符,位运算符的一种,表示同一位都为1时,最后结果才为1。例子:4&6=4(使用计算器将两个数都显示出来更加能够理解透彻) |:或运算符,位运算符的一种,表示同一位只要有一个为1,最后结果就为1。例子:4|6=6。 ~:非运算符,位运算符的一种,该位为1时,结果为0,该位为0时,结果原创 2021-02-25 14:48:35 · 72 阅读 · 0 评论 -
Java中Lambda表达式学习
Java中Lambda表达式学习 上一篇博客了解了线程的相关学习,学习的过程中看到一个注解@FunctionalInterface,本次的博客就来学习一下函数式接口。函数式接口可以用Lambda来创建,所以函数式接口的学习应该在Lambda表达式前面。 先来看一下函数式接口的文档定义:可以发现几个重要的点:函数式接口只有一个抽象方法。默认方法和覆盖方法都不计入抽象方法数目。可以用Lambda表达式、方法引用、构造函数引用来创建函数式接口实例。注解并不一定是必须的,只要符合要求,编译器会原创 2021-02-18 16:25:15 · 363 阅读 · 3 评论 -
Java线程深入学习
Java线程深入学习 上一篇博客讲了一下并发,但是没有达到自己的效果,所以这篇博客想从上一篇博客中的线程讲起,打算写一篇有着自己风格和能够让自己满意的博客。也是想深入了解一下线程的工作原理。 线程是程序中的执行线程。 Java虚拟机允许应用程序具有多个并发运行的执行线程。Java创建线程有两种方式(Java文档中这样说的,网上说应该还有一种,总共三种)一种是继承Thread类,一种是实现Runnable接口。下面先就第一种创建方法来说一下线程具体的流程。现在上代码。package ThreadTr原创 2021-01-13 18:16:54 · 83 阅读 · 0 评论 -
Java中并发了解和学习
Java中并发了解和学习 了解Java中的并发需要先清楚进程和线程的区别 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 说的更加通俗一点,进程相当于你电脑运行的各个软件,满足的你的不通需求。线程相当于进程中更加小的进程,例如打游戏时,你既可以看到画面,也能听到游戏的声音,这里就是不同的线程。线程和进程的区别原创 2021-01-05 17:56:02 · 141 阅读 · 0 评论 -
集合的了解和使用
第9章 集合 集合平时使用的比较多,但是自己很少往深处去看看其实现和原理,这次趁着这个机会了解一下,完全搞懂还是要看自己后续的使用和深挖。集合框架了解 想要了解集合,就需要先了解集合框架,这里也以最熟悉的队列(queue)为例来介绍集合框架。集合的接口与实现分离和大多数的设计思想一样,集合的接口和实现也是分离的。队列接口指出了可以在队列的尾部添加元素,在头部删除元素,查找队列中元素的个数。队列的实现通常存在两种形式,一种是使用循环数组,一种是使用链表。这样设计的目的是为了:构建集合时不需要原创 2020-08-24 21:40:31 · 189 阅读 · 0 评论 -
范型程序设计
第8章 范型程序设计 范型要解决的问题就是让编写的代码可以被很多不同的类型所重用。例如List<String>,就是一个简单的范型的使用。 下面就列举一个简单的范型的代码例子。package paradigmtrain;import java.time.LocalDate;/** * ParadigmTrain1.java * Description: 范型练习类 * * @author Peng Shiquan * @date 2020/5/15 */publ原创 2020-08-13 21:08:03 · 167 阅读 · 0 评论 -
枚举类了解及练习
枚举类了解及练习 工作中遇到一个类,发现使用到了枚举,这次也顺带着了解一下。很多东西虽然自己知道但是没有再工作中遇到,也没有去想什么地方能遇到。后面也会对这类知识点在工作中的使用专门写一些博客。 枚举类型比较特殊,算是Java中一个比较特殊的类。下面就列一个简单的例子。package enumtrain;/** * ClothesSize.java * Description: 衣服大小枚举类 * * @author Peng Shiquan * @date 2019-07-13原创 2020-06-30 23:45:41 · 195 阅读 · 3 评论 -
Java代码实现ping命令
Java代码实现ping命令 在一个项目中,遇到了一个问题,需要查看某个IP是否能够ping通,这里就直接使用Java代码实现了,记录一下。 先说一下实现的几个方法。Jdk1.5的InetAddresss方式调用本机CMDJava调用控制台执行ping命令 下面也就不不废话了,直接上代码吧。package network_train;import java.io.BufferedReader;import java.io.IOException;import ja原创 2020-06-15 15:53:57 · 3217 阅读 · 0 评论 -
Java学习(异常、断言和日志)
第7章 异常、断言和日志异常结构分类 所有的异常都是由 Throwable 继承而来,但在下一层立即分解为两个分支:Error 和 Exception。Exception这个层次结构又分解为两个分支: 一个分支派生于RuntimeException; 另一个分支包含其他异常。派生于 RuntimeException 的异常包含下面几种情况(只是简单列举,可能包含的不完全)出现这个异常一般都是自己的代码有问题错误的类型转换。数组访问越界。访问 null 指针。其他异常试图在文件原创 2020-05-15 16:57:27 · 162 阅读 · 1 评论 -
JDBC访问数据库步骤
最近开始复习JAVASE,下面就看看一些之前忘记的点。 JDBC访问数据库是之前自己比较迷糊的,现在正好来复习一下。数据库连接首先要有一个JDBC驱动程序,还要有一个数据库,这里两者不属于JAVA的知识,不再介绍。就只是介绍JDBC编程。 JDBC编程有6步,分别是1.加载sql驱动,2.使用DriverManager获取数据库连接,3.使用Connecttion来创建一个S...原创 2018-05-06 16:19:00 · 7344 阅读 · 0 评论 -
java注解(1)
java中注解是我一直不懂的地方,这次就来复习一下。 java中有5个基本Annotation(注解)4个元Annotation。五个基本Annotation是为了修饰程序元素,四个元Annotation是为了修饰Annotation的。下面就具体谈一谈。 五个基本Annotation分别为1.@Override(限定重写父类的方法,必须重写父类的方法),2.@Depreca...原创 2018-05-08 14:48:00 · 87 阅读 · 0 评论 -
Lambda表达式(1)
今天复习Lambda表达式,因为这个是java8的新特性,所以JDK和IDE弄了好久,现在才刚弄好。 Lambda表达式是java8的新特性,支持将代码块作为方法参数,Lambda表达式允许使用更简洁的方式来创建只有一个抽象方法的接口(函数式接口)的实例,其中,被大家都知道的就是使用Lambda表达式创建Thread实例。这种方式大大简洁化了大家的代码。 Lambda表达式由...原创 2018-05-12 18:09:00 · 311 阅读 · 0 评论