Java知识点
文章平均质量分 61
等待中的小码农
ctrlturtle
展开
-
【分布式&微服务】SpringBoot启动原理
【分布式&微服务】SpringBoot启动原理原创 2023-01-30 08:35:20 · 469 阅读 · 0 评论 -
【分布式&微服务】SpringBoot自动配置原理
【分布式&微服务】SpringBoot自动配置原理原创 2023-01-27 15:47:31 · 203 阅读 · 0 评论 -
【Java知识点】BiConsumer、Function的简单使用
BiConsumer、Function的简单使用原创 2022-11-28 17:19:49 · 910 阅读 · 0 评论 -
【java知识点】常用注解解析
【java知识点】常用注解解析原创 2022-04-23 10:35:40 · 2670 阅读 · 0 评论 -
【java知识点】AOP的使用
1.AOP的使用场景在实际工作中,可能会存在需要在调用方法前后调用其它接口,例如:1>调用业务方法前,需要根据头部信息来调用外部接口获取到所需的信息,来决定后续方法执行的逻辑;2>调用业务方法后,日志信息的记录(请求参数、返回结果、执行时长等)。2.JoinPoint 介绍JointPoint是程序运行过程中可识别的点,这个点可以用来作为AOP切入点。JointPoint对象则包含了和切入相关的很多信息。比如切入点的对象,方法,属性等。我们可以通过反射的方式获取这些点的状态和信息,用原创 2022-04-22 20:06:36 · 4271 阅读 · 0 评论 -
Java知识点 --- 终止线程的三种方式
停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。 使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。 使用 interrupt 方法中断线程。1. 使用标志位终止线程在 run() 方法执行完毕后,该线程就终止了。但是在某些特殊的情况下,run() 方法会被一直执行;比如在服务端程序中可能会使用w.转载 2020-08-28 22:01:46 · 300 阅读 · 0 评论 -
java知识点 --- CyclicBarrier和CountDownLatch区别
CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下一、CountDownLatch用法CountDownLatch类只提供了一个构造器:public CountDownLatch(int count) { }; //参数count为计数值CountDownLatch类中最重要的方法:public void await() throws InterruptedException { }; //调用await()转载 2020-05-09 17:46:17 · 150 阅读 · 0 评论 -
java知识点 --- 静态代理模式与动态代理模式
代理模式为其他对象提供了一种代理以控制对这个对象的访问,根据代理类的创建时机和创建方式的不同,可以将其分为静态代理和动态代理两种形式:在程序运行前就已经存在的编译好的代理类是为静态代理,在程序运行期间根据需要动态创建代理类及其实例来完成具体的功能是为动态代理。代理模式的目的就是为真实业务对象提供一个代理对象以控制对真实业务对象的访问。代理模式主要包含三个角色,即抽象主题角色(Subject...原创 2020-05-08 11:07:20 · 174 阅读 · 0 评论 -
java知识点 --- springcloud五大核心组件
df转载 2020-05-05 18:27:00 · 466 阅读 · 1 评论 -
java知识点 --- 过滤器与拦截器
过滤器 Filter首先介绍下什么是过滤器,过滤器英文叫 Filter,是 JavaEE 的标准,依赖于 Servlet 容器,使用的时候是配置在 web.xml 文件中的,可以配置多个,执行的顺序是根据配置顺序从上到下。常用来配置请求编码以及过滤一些非法参数,垃圾信息或者是网站登录验证码。<filter><filter-name>Cha...原创 2020-04-29 15:07:05 · 344 阅读 · 0 评论 -
java知识点 --- 类加载机制
一、什么是类的加载在介绍类的加载机制之前,先来看看,类的加载机制在整个java程序运行期间处于一个什么环节,下面使用一张图来表示:从上图可以看,java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然...原创 2020-04-27 16:02:02 · 163 阅读 · 0 评论 -
Java知识点 --- 反射机制
一、什么是反射: 反射是Java的特征之一,是一种间接操作目标对象的机制,核心是JVM在运行的时候才动态加载类,并且对于任意一个类,都能够知道这个类的所有属性和方法,调用方法/访问属性,不需要提前在编译期知道运行的对象是谁,他允许运行中的Java程序获取类的信息,并且可以操作类或对象内部属性。程序中对象的类型一般都是在编译期就确定下来的,而当我们的程序在运行时,可能需要动态的加...转载 2020-04-27 15:33:04 · 218 阅读 · 0 评论 -
java知识点 --- Java中创建对象的5种方式
Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码使用new关键字 }→调用了构造函数 使用Class类的newInstance方法 } →调用了构造函数 使用Constructor类的newInstance方法 }→调用了构造函数 使用clone方法 } →没有调用构造函数 使用反序列化 } →没有调用构造函数 ...转载 2020-04-26 12:29:11 · 122 阅读 · 0 评论 -
java知识点 --- java8新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。 Java8 新增了非常多的特性: Lambda 表达式− Lambda 允许把函数作为一个方法的参数(函数作为参数传递到...原创 2020-04-03 23:24:41 · 190 阅读 · 0 评论 -
java知识点 --- 设计模式的三大分类及六大原则
一、三大分类创建型模式(五种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式(七种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式(十一种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。二、六大准则1>开闭原则(Open...转载 2020-03-27 16:15:46 · 211 阅读 · 0 评论 -
java知识点 --- 设计模式:观察者模式
一、定义在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。观察者模式所包含的角色信息:1>抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。2>抽象观察者角色:为所有的具体观察者定义一...原创 2020-03-27 16:02:41 · 273 阅读 · 0 评论 -
java知识点 --- 设计模式:适配器模式(Adapter Pattern)
一、定义 适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。 根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配...原创 2020-03-27 14:33:25 · 123 阅读 · 0 评论 -
java知识点 --- 设计模式:责任链模式
一、定义 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 责任链模式涉及到的角色如下所示: 1>抽象处理者角色(Hand...原创 2020-03-27 01:21:27 · 120 阅读 · 0 评论 -
java知识点 --- 设计模式:策略模式
一、定义 该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 策略模式的主要角色如下, 1>抽象策略类(Strategy):定义了一个公共接口,各种不同的角色以不同的方式实现...原创 2020-03-27 00:18:58 · 221 阅读 · 0 评论 -
java知识点 --- 设计模式:单例模式
一、定义 单例模式是比较常见的一种设计模式,目的是保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实例,避免频繁创建对象,节约内存。二、应用场景 1.计算机中的回收站,电脑上的文件、视频、音乐等被删除后都会进入到回收站中; 2.计算机中的打印机,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务; 3.Web页面的计数器,可以不用把...原创 2020-03-26 16:10:14 · 150 阅读 · 0 评论 -
java知识点 --- 设计模式:工厂模式
简单工厂模式一、定义定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。在简单工厂模式中用于被创建实例的方法通常为静态方法,因此简单工厂模式又被成为静态工厂方法。需要什么,只需要传入一个正确的参数,就可以获取所需要的对象,而无需知道其实现过程。结构:1.工厂类:负责创建所有产品的内部逻辑,工厂类可以被外界直接调用,创建所需对象。(具体的类)...原创 2020-03-26 18:01:09 · 315 阅读 · 0 评论 -
java知识点 --- ConcurrentHashMap底层实现原理
一、定义利用CAS + synchronized来保证并发更新的安全底层使用“数组+链表+红黑树”来实现ConcurrentHashMap继承AbstractMap类,实现ConcurrentMap和Serializable接口二、成员变量 /** * 最大容量(2的幂次方) */ private static final int...原创 2022-12-21 16:02:08 · 257 阅读 · 1 评论 -
java知识点 --- Hashtable底层实现原理
一、定义Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。Hashtable中的映射不是有序的。Hashtable采用"拉链法"实现哈希表。二、成员变量 /** * 为一个En...原创 2020-03-09 15:43:23 · 2866 阅读 · 0 评论 -
java知识点 --- 装箱与拆箱
一、什么是装箱?什么是拆箱? Java为每种基本数据类型都提供了对应的包装器类型,如下: 在jdk1.5之前,生成一个数值为10的Integer对象必须写为:Integer i = new Integer(10);但是1.5及其以后的版本都加入了自动装箱的功能,就可以直接写为:Integer i = 10; 装箱和拆箱的实现过程:装箱过程是通过调用包装器的va...原创 2020-03-05 02:01:43 · 174 阅读 · 0 评论 -
java知识点 --- HashMap底层实现原理
1.HashMap的实现原理 HashMap基于哈希原理,当添加一个元素(key-value)时,调用键对象key的hashCode()方法来计算hashcode,以此确定插入数组的位置(桶的位置),但是可能存在同一hashcode值的元素已经被放在数组同一位置了,这时便产生了碰撞。当发生碰撞后,将其添加到同一hashcode的元素的后面,它们在数组的同一位置,但是形成了链表,同一各链表...原创 2020-03-05 13:44:27 · 1047 阅读 · 1 评论 -
java知识点 --- java.lang.Math常用方法
1.floor向下取整 用法:Math.floor(num) Math.floor(1.9)//1 Math.floor(-1.9)//-22.round四舍五入 用法:Math.round(num)实际上是等价于Math.floor(num+0.5) Math.round(1.5)//2 ...原创 2020-03-03 00:20:11 · 247 阅读 · 0 评论 -
Java 知识点 --- 静态代码块初始化问题
1.变量是 static final 修饰的“编译期常量”,如 public static final String c = "C";public class Test { public static void main(String[] args) { System.out.println(A.c); }}class A { public ...原创 2020-03-02 21:49:28 · 1438 阅读 · 0 评论 -
ArrayList扩容机制
1.成员变量 // 默认给定的初始容量 private static final int DEFAULT_CAPACITY = 10; // 无参构造器中所使用到的空数组实例 private static final Object[] EMPTY_ELEMENTDATA = {}; // 有参构造器中所使用到的空数组实例 private st...原创 2020-03-02 17:30:06 · 208 阅读 · 0 评论 -
java知识点 --- printf 日期转换符
转载于:https://blog.csdn.net/junshuaizhang/article/details/40153147System.out.printf()方法可以对日期做处理输出。对应列表package SE; import java.util.Date; /** * * <p> * Description: 本实例是为了学习print...转载 2020-02-15 18:37:40 · 192 阅读 · 0 评论 -
Java知识点 --- struts简单介绍
转载于:https://blog.csdn.net/l577125882/article/details/80395677首先要知道mvc模式(model,view,controller),controller层用来接收页面请求的信息,并且调用service层来响应给界面信息。model层用来处理业务信息和数据库的交互,view用来显示界面信息。Struts就是mvc模式的优秀代表,strut...原创 2020-02-14 15:38:53 · 339 阅读 · 0 评论 -
java知识点 --- 复制数组的方法介绍及比较
1.System.arraycopypublic static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)参数:src - 源数组。srcPos - 源数组中的起始位置。dest - 目标数组。destPos - 目标数据中的起始位置。length - 要复制的数组元素的数量。publ...原创 2019-12-12 00:34:18 · 142 阅读 · 0 评论 -
java知识点 --- 覆盖(重写)与重载
1.覆盖(重写)通过子类继承父类,但是却对继承来的方法进行重新,赋予新的业务逻辑。如下:2.重载一个类中可以包含多个同名但参数列表不同的方法。如下:3.覆盖与重载的对比...原创 2019-12-09 10:02:31 · 167 阅读 · 0 评论 -
java知识点 --- 内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。1.成员内部类成员内部类 -> 外部类成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)public class Circle { double radius...原创 2019-11-15 23:37:29 · 142 阅读 · 0 评论 -
java知识点 --- 实现多继承的三种方法
1.多层继承class A{ private int num=10; public int getNum(){ return this.num; } public void fun(){ System.out.println("你今天真好看!"); }}class B extends A{ private S...原创 2019-11-15 15:31:24 · 2033 阅读 · 0 评论 -
Java知识点 --- ObjectMapper的使用
ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。第一步:依赖包的导入<dependency> <groupId>com.fasterxml.jackson.core</groupId> &l...原创 2019-11-07 15:07:03 · 1130 阅读 · 0 评论 -
Java知识点 --- HttpClient简单介绍
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。环境说明:JDK1.8、SpringBoot第一步:在pom.xml中引入相关jar包 <dependency> <groupId>org.apa...原创 2019-11-07 10:51:40 · 319 阅读 · 0 评论 -
java面试题 --- 进程与线程
1.进程的定义 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进程实体由程序段, 数据段 PCB(进程控制块)组成。2.线程的定义 线程可以看做轻量级进程,线程是进程的执行单元,是进程调度的基本单位。3.并行与并发的定义 并行(parallel)是指在同一时刻,有多条指令在多个处理器上同时运行;并发(concurrency)指的...原创 2019-11-01 00:06:28 · 700 阅读 · 0 评论 -
java面试题 --- 异常类型及处理
1.Java异常类型2.异常的处理异常处理指的是对可提前检查的异常的处理。1>使用try...catch语句块来处理2>使用throws/throw抛出到上层3.finally关键字finally 关键字用来创建在 try 代码块后面执行的代码块。无论是否发生异常,finally 代码块中的代码总会被执行。在 finally 代码块中,可以运行清理类型...原创 2019-10-31 19:31:57 · 347 阅读 · 0 评论 -
java面试题 --- javaBean的介绍
来自:https://www.cnblogs.com/zterry/p/6863388.html1.基本概念JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:1>必须具有一个无参的构造函数;2>属性必须私有化(可以是任意类型,并且一个JavaBean可以有多个属性);3>私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名...原创 2019-10-31 00:47:50 · 1660 阅读 · 0 评论 -
java面试题 --- 抽象类与接口的异同点
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。1.抽象类1.1 抽象方法概念:只有声明,没有具体的实现的方法。声明格式为:abstract void fun();1.2 抽象类概念:如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。(注意:抽象类不一定必须含有抽象方法,只...原创 2019-10-30 00:31:08 · 656 阅读 · 0 评论