随笔分类 -  Java基础

加深Java学习
摘要:今天,我们将深入探讨如何自定义注解来实现对敏感数据的脱敏处理。在当今数据安全越来越受到重视的背景下,许多企业都对敏感数据的保护有着严格的要求,尤其是在处理涉及个人隐私、财务信息等敏感数据时,脱敏成为了一个至关重要的环节。因此,今天的内容将着重于实践操作,而不会涉及过多的理论解析。 我们将通过一个具体 阅读全文
posted @ 2024-11-15 10:31 努力的小雨 阅读(276) 评论(0) 推荐(0) 编辑
摘要:Gateway请求流程 阅读全文
posted @ 2021-06-24 10:35 努力的小雨 阅读(2342) 评论(0) 推荐(1) 编辑
摘要:本文章对ThreadPoolExecutor线程池的底层源码进行分析,线程池如何起到了线程复用、又是如何进行维护我们的线程任务的呢?我们直接进入正题: 首先我们看一下ThreadPoolExecutor类的源码 1 public ThreadPoolExecutor(int corePoolSize 阅读全文
posted @ 2021-02-05 14:35 努力的小雨 阅读(593) 评论(0) 推荐(1) 编辑
摘要:jvm内存模型 主要包含类加载器、jvm内存、字节码执行引擎、GC; 类加载器 类加载器主要包含:应用程序加载器、扩展类加载器、启动类加载器。 启动类加载器:主要进行加载java核心类,例如:rt.jar包下的类。 扩展类加载器:主要进行加载java中ext包下的类。 应用程序类加载器:主要加载我们 阅读全文
posted @ 2019-09-10 13:55 努力的小雨 阅读(595) 评论(0) 推荐(1) 编辑
摘要:加锁目的:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问。 加锁方式:java锁分为两种--显示锁和隐示锁,本质区别在于显示锁需要的是程序员自己手动的进行加锁与解锁如ReentrantLock需要进行lock与unlock。而隐式锁则是Synchronized,jvm内 阅读全文
posted @ 2019-09-02 16:31 努力的小雨 阅读(1825) 评论(0) 推荐(1) 编辑
摘要:从计算机到并发 阅读全文
posted @ 2019-07-25 10:56 努力的小雨 阅读(1674) 评论(0) 推荐(1) 编辑
摘要:以无延迟加载考虑时,枚举式单例好于饿汉式单例 饿汉式单例模式 枚举式单例模式 以有延迟加载考虑时,静态内部单例好于懒汉式单例 懒汉式单例模式 静态内部类单例模式 阅读全文
posted @ 2018-06-30 09:42 努力的小雨 阅读(139) 评论(0) 推荐(1) 编辑
摘要:首先,接口与抽象类是Java面向对象设计的基础机制。 接口,是对行为的抽象,它是抽象方法的集合。利用接口能实现API定义与实现分离的目的,不能实例化,只能包含抽象方法、常量。任何field都隐含了public static final修饰。同时没有非静态方法,要么是抽象方法,要么是静态方法。Java 阅读全文
posted @ 2018-06-25 20:25 努力的小雨 阅读(723) 评论(0) 推荐(1) 编辑
摘要:Java提供了不同层面的线程安全支持,在传统集合框架内部,除了如Hashtable等同步容器,还提供了所谓的包装器(synchronized Wrapper),我们可以调用Collections工具类提供的方法,来获取一个同步的包装容器(如Collections.synchronizedMap),但 阅读全文
posted @ 2018-06-22 19:14 努力的小雨 阅读(542) 评论(0) 推荐(1) 编辑
摘要:传统的Java.io包中,它基于流模型实现,提供了我们熟知的IO功能 交互方式是同步、阻塞的方式,在读取输入流或者写入输出流时,在读写动作完成之前,线程会一直阻塞在那里,他们之间的调用是可靠的线程顺序 不过Java.io包下的好处是代码简单易懂、直观,缺点是Io效率和扩展性存在局限,容易成为应用性能 阅读全文
posted @ 2018-06-19 10:42 努力的小雨 阅读(502) 评论(0) 推荐(1) 编辑
摘要:Hashtable,HashMap,TreeMap都是以Java集合(Collection )另外的一部分,是Map的实现,都是以键值对的方式存储并操作数据的容器。 Hashtable是早期Java提供的哈希表实现,本身是同步的,并且不允许存储null键和值,由于同步导致性能上的开销,所以很少被推荐 阅读全文
posted @ 2018-06-18 20:33 努力的小雨 阅读(265) 评论(0) 推荐(1) 编辑
摘要:三者都属于List的子类,方法基本相同。比如都可以实现数据的添加、删除、定位以及都有迭代器进行数据的查找,但是每个类 在安全,性能,行为上有着不同的表现。 Vector是Java中线程安全的集合类,如果不是非要线程安全,不必选择使用,毕竟同步需要额外的性能 开销,底部实现也是数组来操作,再添加数据时 阅读全文
posted @ 2018-06-17 19:57 努力的小雨 阅读(8022) 评论(0) 推荐(1) 编辑
摘要:首先int是Java的八种原始基本类型(byte、short、int、long、Boolean、float、double、char)之一,Java虽是面向对象的语言, 但是基本类型除外。 integer是int的包装类,它有一个int类型属性用于存储数据,并且提供了基本操作,比如数学运算、int与字 阅读全文
posted @ 2018-06-17 19:56 努力的小雨 阅读(534) 评论(0) 推荐(1) 编辑
摘要:反射机制是Java的一种基础功能,赋予程序在运行时自省的能力,通过反射机制我们能够直接操作类或者对象 获取类的属性、方法,调用方法或者构造对象,甚至可以在运行时修改类定义。Java在反射时的invocationhandle中的方法 方法的访问权限没起作用,会导致安全隐患。必须实现invoke方法 动 阅读全文
posted @ 2018-06-17 19:53 努力的小雨 阅读(182) 评论(0) 推荐(1) 编辑
摘要:String类在其源码中,其jdk9之前是final修饰的char数组,jdk9后是final修饰的byte数组,final修饰的 类,final修饰的属性,是典型的immutable类,每次对string对象进行赋值,类似裁剪字符串、拼接, 都会在堆中创建一个String对象,对系统的性能有所影响 阅读全文
posted @ 2018-06-17 19:52 努力的小雨 阅读(150) 评论(0) 推荐(1) 编辑
摘要:强引用就是我们常见的创建对象实例的时候就是new的过程,只要他还指向一个对象,就表明他还活着,垃圾收集器就不会碰如果没有其他的引用关系,或者将其显示的赋值为null,就可以被回收。 软引用可以豁免一些垃圾回收,只有当jvm认为内存不足的才会试图回收引用所指向的对象,jvm在确保抛出oom时,会清理软 阅读全文
posted @ 2018-06-15 20:54 努力的小雨 阅读(1407) 评论(0) 推荐(1) 编辑
摘要:final关键字用于修饰类、属性、方法,分别有不同的含义。final修饰的类不可继承、修饰的方法不可以重写(可以重载)、修饰的变量不可以修改其值。但是final并不等同于immutable。它只会将该对象的引用不改变,但是像list这样的还是正常可以往里添加数据 finally是在捕获异常的时候用到 阅读全文
posted @ 2018-06-15 20:51 努力的小雨 阅读(374) 评论(0) 推荐(1) 编辑
摘要:两者都继承了Throwable类,在Java中只有其实例才能被try--catch捕获到或者throw被抛出,它是异常处理机制的基本组成类型 ; Error为是在正常运行下,不大可能发生的情况,大多可能对导致程序不可恢复,既然是非正常情况下,所以不便于抓,常见的有OutofMemoryError等, 阅读全文
posted @ 2018-06-15 20:36 努力的小雨 阅读(267) 评论(0) 推荐(1) 编辑
摘要:首先Java是一种面向对象的语言,本身具有两个特性:一个是write once,run anywhere,就是一次编写,到处运行。具有跨平台的能力。第二个就是垃圾自动回收机制,Java通过garbage collection 回收分配内存,大部分情况下,程序员不用担心内存分配问题 。 我们日常接触到 阅读全文
posted @ 2018-06-15 20:22 努力的小雨 阅读(1881) 评论(0) 推荐(1) 编辑