Java
笑笑是一个码农
Coding
展开
-
Java之CountDownLatch验证代码
代码地址:Giteepackage com.xiao.lock;import java.util.concurrent.CountDownLatch;/** * @description CountDownLatch 验证代码 * @auther: 笑笑是一个码农 * @date: 20:40 2021/07/31 */public class CountDownLatchDemo { public static void main(String[] args) { .原创 2021-07-31 22:39:51 · 271 阅读 · 0 评论 -
Java中文汉字转汉语拼音
一、背景在工作中,有时候我们需要利用汉字的拼音首字母进行排序,此时我们就需要获取汉字对应的拼音,今天就跟大家分享一下,Java中如何获取汉字的拼音二、代码添加maven依赖 <!-- 中文转拼音 --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId&g原创 2021-06-11 14:48:55 · 1486 阅读 · 0 评论 -
Java之读写锁验证代码
代码地址:Giieepackage com.xiao.lock;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * @description 读写锁代码验证 * @auther: 笑笑是一个码农 * @date: 21:29 2020/12/7 */public class ReadWriteDemo { .原创 2021-01-31 20:56:14 · 220 阅读 · 0 评论 -
Java之自旋锁验证代码
代码地址:Giteepackage com.xiao.lock;import java.util.concurrent.atomic.AtomicReference;/** * @description 自旋锁演示代码 * @auther: 笑笑是一个码农 * @date: 17:15 2020/12/6 */public class SpinLockDemo { // 原子引用线程,初始为null AtomicReference<Thread> a.原创 2021-01-31 20:54:51 · 164 阅读 · 0 评论 -
Java之线程安全CopyOnWriteArrayList集合验证代码
代码地址:https://gitee.com/smile-coding/my-code/blob/master/juc/src/main/java/com/xiao/collections/CopyOnWriteArrayListDemo.javapackage com.xiao.collections;import java.util.ArrayList;import java.util.List;import java.util.UUID;import java.util.concurr原创 2021-01-28 16:19:55 · 137 阅读 · 1 评论 -
Java之版本号原子引用解决ABA问题验证代码
代码地址:Giteepackage com.xiao.atomic;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicStampedReference;/** * @description 时间戳原子引用,ABA问题演示与解决 * @auther: 笑笑是一个码农 * @date: 22:08 2020/11/24 */public class Atom原创 2020-12-31 21:19:38 · 1417 阅读 · 0 评论 -
Java之原子引用验证代码
代码地址:Gieepackage com.xiao.atomic;import java.util.concurrent.atomic.AtomicReference;/** * @description 原子引用 * @auther: 笑笑是一个码农 * @date: 16:41 2020/11/22 */public class AtomicReferenceDemo { public static void main(String[] args) { .原创 2020-12-31 20:46:36 · 118 阅读 · 0 评论 -
Java之CAS验证代码
CAS:比较并交换,本地内存中的期望值,与主内存中的旧值相比,如果符合期望,则修改成功,否则,修改失败。package com.xiao.atomic;import java.util.concurrent.atomic.AtomicInteger;/** * @description CAS 演示代码 * @auther: 笑笑是一个码农 * @date: 23:15 2020/11/18 */public class CasDemo { public static voi原创 2020-12-30 22:17:33 · 591 阅读 · 0 评论 -
Java之volatile在单例模式下的使用场景(DCL)
废话不多说,都写注释里面了,直接上代码!!!package com.xiao.myvolatile;/** * @description 单例模式,双重检查案例(Double Check Lock) * @auther: 笑笑是一个码农 * @date: 22:38 2020/11/17 */public class VolatileSingletonDcl { public static void main(String[] args) { // 单线程下单例.原创 2020-12-30 22:14:11 · 319 阅读 · 2 评论 -
Java网络编程基础:Socket和ServerSocket + IO流实现基本的客户端/服务器通信架构(C/S)
一、Socket和Client1、Socket是客户端创建的通信端点,比较官方的翻译是:套接字,但是这个翻译对于初学者来说,比较抽象,不易理解。为了方便理解,我这里举个简单的例子。我们可以把客户端比作电话,服务器端比作某移动公司的客服电话,当你拨打该客服电话时,需要输入电话号码,此时这个号码我们就可以理解为服务器的地址(IP),但是由于客服业务众多,就算电话接通后,也并不知道你要办理或咨询什么业务,此时会提示你按某数字键来确定你想要办理的业务,此时的数字键我们就可以理解为服务器的端口号(PORT),原创 2020-11-21 21:35:04 · 794 阅读 · 0 评论 -
Java之volatile不保证原子性
更多编程知识请见:https://gitee.com/smile-coding/my-code如果对你有帮助,点个小心心支持下哈(star)package com.xiao.myvolatile;/** * @description volatile不保证原子性代码验证 * @auther: 笑笑是一个码农 * @date: 21:54 2020/11/14 * * 什么是原子性? 某个线程在操作具体的业务时,需要整体完整,不可分割,保证数据的一致性、完整性。 */public原创 2020-11-15 14:11:04 · 178 阅读 · 0 评论 -
Java之volatile的可见性
更多编程知识请见:https://gitee.com/smile-coding/my-code如果对你有帮助,点个小心心支持下哈(star)public class VolatileVisibleDemo { public static void main(String[] args) throws InterruptedException { Test test = new Test(); // 验证volatile保证可见性 new原创 2020-11-13 23:38:22 · 206 阅读 · 0 评论 -
JVM知识点思维导图(详细)
这是自己看JVM学习视频,整理的JVM思维导图,以下是截止目前写博客时整理的知识点,后续会持续更新更新地址(gitee):https://gitee.com/smile-coding/study-xmind-or-note/tree/master/xmind/jvm如果对你有帮助,给个小心心支持一下哈(star)...原创 2020-11-10 00:26:02 · 1312 阅读 · 0 评论 -
Java中创建线程的方式到底有几种?
在面试过程中,我们会经常遇到的一个问题:Java中创建一个线程的方式有几种?这个问题,站在不同的角度来看,答案会有所不同。一、从本质出发如果站在创建线程最本质的方式,我认为其实只有一种,就是构造Thread类。构造Thread,又衍生出两种方式,一是继承Thread类,二是实现Runnable接口,但无论是那种方式,最终也要创建Thread类的对象或其子类对象。集成Thread方式:package com.xiao.createthreads;public class Thr原创 2020-09-30 18:52:06 · 540 阅读 · 1 评论 -
Java自定义注解
在日常的开发过程中,我们会使用到大量的注解,这些注解使用起来非常的方便快捷,会大大提高我们的编码效率。但在Java中如何自定义一个注解呢?下面我就与大家一起来分享。...原创 2020-04-29 19:50:58 · 284 阅读 · 0 评论 -
Java字符串知识整理
一、String类String类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。String的底层其实是一个被final修饰的字符数组,部分源码如下:public final class String implements java.io.Serializable, Comparable<String>, CharSeque...原创 2018-07-26 08:55:51 · 483 阅读 · 0 评论 -
Java泛型知识整理
一、泛型泛型,是JDK1.5的新特性之一。泛型提供了编译时类型安全检测机制,该机制允许程序在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。二、集合中的泛型//集合中的泛型@Testpublic void test_1(){ //没有泛型限定的集合,里面可以存储任何类型的对象引用 List list_1 = new...原创 2018-07-28 17:13:03 · 157 阅读 · 0 评论 -
Java内部类知识整理
一、内部类将类定义在其他类的内部(成员位置或局部位置),此种方式定义的类称之为内部类。定义在成员位置的类称之为成员内部类。定义在局部位置的类称之为局部内部类。成员内部类可以使用成员修饰符,如public、private、static等等。它也是个类,可以继承、实现接口等。内部类可以使用外部的成员,包括私有的。但是外部类要使用内部类的成员,必须要创建内部类对象。创建内部类对象格式:...原创 2018-07-25 16:29:40 · 164 阅读 · 0 评论 -
Java修饰符知识整理
一、final修饰符final,字面意思为最终的。1.final修饰的类不能被继承(要放在class关键字之前)。但可以继承其他的类。2.final修饰的成员方法不能被重写,但可以被继承使用。3.final修饰的变量,称之为常量,只能被赋值一次,其值终生不变。修饰成员变量时,要在创建对象前赋值(显示赋值,或者使用构造方法赋值)。4.final修饰的引用类型的变量,其保存的内存地...原创 2018-07-25 16:16:37 · 167 阅读 · 0 评论 -
Java数组知识整理
一、数组的概念数组是相同数据类型元素的集合。数组本身是引用数据类型,但它可以存储基本数据类型和引用数据类型。二、数组的声明语法一:数据类型[] 数组名;语法二:数据类型 数组名[];三、数组的创建两个要素:数据类型、长度。语法一:数据类型[] 数组名 = new 数据类型[长度];(动态初始化,先定义数组,然后初始化数据)语法二:数据类型[] 数组名 = new...原创 2018-07-19 17:01:11 · 1355 阅读 · 0 评论 -
Java构造方法知识整理
一、构造方法如果需要创建对象的同时明确对象的属性值,需要使用构造方法来对这些属性值进行初始化操作。二、创建对象的过程1.声明一个对象,包括对象的名称和类型。2.实例化对象,使用new关键字创建对象。3.初始化赋值,在使用new关键字创建对象时,会自动调用构造方法初始化对象属性。三、构造方法的特点1.没有返回值,对象创建完,方法就执行结束。2.构造方法的名称必须和类名...原创 2018-07-24 13:24:33 · 266 阅读 · 0 评论 -
Java循环结构知识整理
一、循环结构顺序结构的程序语句只能被执行一次。如果想要同样的操作执行多次,,就需要使用循环结构。Java中有三种主要的循环结构,如下:1.while循环2.do...while循环3.for循环4.JDK5 提供了增强for循环(foreach循环)二、while循环语法:while(布尔表达式){ //布尔表达式为true时执行的代码块}例:...原创 2018-07-18 17:46:23 · 476 阅读 · 0 评论 -
Java多态知识整理
一、多态多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。二、优点1.消除类型之间的耦合关系2.可替换性3.可扩充性4.接口性5.灵活性6.简化性三、条件1.继承(或实现接口)2.重写3.父类引用指向子类对象四、实例例1://定义父类public class Father { ...原创 2018-07-23 11:50:33 · 258 阅读 · 0 评论 -
Java分支结构知识整理
一、分支结构顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。在Java中有以下两种分支结构:1.if/if...else/if...else if...else语句2.switch...case 语句二、if语句一个 if 语句包含一个布尔表达式和一条或多条语句。语法:if(布尔表达式){ //布尔表达式结果为true执行的代码块}例:...原创 2018-07-17 16:41:44 · 1362 阅读 · 0 评论 -
Java反射知识整理
一、Class类Class 类的实例表示正在运行的 Java 应用程序中的类和接口。也就是说类或接口是java.lang.Class类的实例对象。二、获取Class类的实例对象public class ReflectDemo1 { public static void main(String[] args){ //获取Class类的实例对象的方式一 ...原创 2018-07-31 21:20:20 · 183 阅读 · 0 评论 -
Java运算符知识整理
一、运算符计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java提供了一套丰富的运算符来操纵常量和变量。可以分为以下几大类:1.算数运算符2.关系运算符(比较运算符)3.位运算符4.逻辑运算符5.赋值运算符6.条件运算符(三元运算符)7.instanceof运算符二、算数运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。加(...原创 2018-07-17 15:00:18 · 191 阅读 · 0 评论 -
Java继承知识整理
一、继承继承是java面向对象编程技术的一块基石,它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承就是指在现有类的基础上,去构建一个新类,新类成为子类(派生类),原有的类称为父类(基类/超类)。二、继承的优缺点优点:1.提高代码的复用性。2.提高代码的可维护性。...原创 2018-07-20 15:29:01 · 231 阅读 · 0 评论 -
Java文件操作知识整理
一、File类File是文件和目录路径名的抽象表示形式,即把文件或目录封装成File类的对象。File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。二、File类中的静态成员变量public static void main(String[] args){ //打印结果为 “;”号(Windows下目录之间默认的分隔符) Stri...原创 2018-07-29 21:07:10 · 497 阅读 · 0 评论 -
Java抽象类知识整理
一、抽象类在Java中,不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。二、抽象方法只有方法的声明,没有方法体的方法为抽象方法。三、特点1.有抽象方法的...原创 2018-07-21 16:10:10 · 835 阅读 · 0 评论 -
Java复习笔记_反射_01
2018-03-13类的加载当Java虚拟机要运行某个类时,如果该类还未被加载到内存当中,虚拟机则会通过加载,连接,初始化这三个步骤实现对这个类的初始化。加载:指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时,虚拟机都会建立一个class对象。连接:验证 是否具有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 ...原创 2018-03-13 16:28:00 · 108 阅读 · 0 评论 -
Java生成二维码图片,手机软件扫码后跳转网页
一、创建maven工程,添加如下依赖 <dependencies> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <...原创 2019-09-29 18:45:05 · 1363 阅读 · 0 评论 -
Java知识点思维导图
这是八个月以来第一次月底才开始写博客,今天继续回顾了一下Java基础知识点,个人认为基础知识是非常重要的,但总是看了忘,忘了再看,无语。。。奉上思维导图:(有缺漏的欢迎各路神仙留言补充)...原创 2018-11-27 13:46:19 · 4103 阅读 · 2 评论 -
Java网络编程知识整理
一、网络协议java.net 包中提供了两种常见的网络协议的支持:TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。二、InetAddress类该类的实例包含IP地址,还可能包含相应的主机名称。以下是其中的一些常用...原创 2018-08-01 22:57:52 · 292 阅读 · 0 评论 -
Java集合框架知识整理
一、集合集合类定义于java.util包中。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用。可以简单理解为,集合就是为了存储数据而定义的一个容器,只能存储引用类型的数据,其实存储的是对象的引用。二、常用集合继承、实现关系图三、Collection接口Collection是集合的顶层接口(JDK1.5开始,Iter...原创 2018-07-28 11:17:18 · 246 阅读 · 0 评论 -
Java包装类知识整理
一、包装类在开发中,我们经常会对字符串进行操作,而当我们需要把字符串转换成指定的基本数据类型时,就需要使用Java给我们提供的包装类。二、分类八大基本数据类型对应的包装类如下: 基本数据类型 包装类 byte Byte Int Integer shor...原创 2018-07-27 21:36:32 · 227 阅读 · 0 评论 -
Java线程安全知识整理
一、线程安全一个程序中有多个线程同时运行,并且这些线程运行某段相同的代码,程序运行的结果与单线程运行的结果相同,而其他的变量值也和预期的一样,这个程序就是线程安全的。多个线程程序往往会操作同一个共享数据,就可能会出现安全问题。比如就像我们在网上买东西,同一件商品可能会有很多的用户在同时购买,但商品的库存量是一定的,如果在某一时刻库存量变为了0,却有用户购买到了商品,这就是多线程程序可能...原创 2018-07-31 20:12:48 · 230 阅读 · 0 评论 -
Java多线程知识整理
一、进程的概念进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。二、线程的概念线程是程序执行流的最小单元,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。三、我的理解进程就是系统运...原创 2018-07-31 20:04:47 · 184 阅读 · 0 评论 -
Java-IO知识整理
一、字节输出流OutputStream它是一个抽象类,是表示输出字节流的所有类的超类。由于是抽象类,所以不能被实例化,通过其子类FileOutputStream来学习其中的方法。// void write(int b) 将指定字节写入此文件输出流。@Testpublic void test_01() throws Exception{ //构造方法 FileOutpu...原创 2018-07-31 11:24:09 · 153 阅读 · 0 评论 -
Java接口知识整理
一、接口接口可以看做是特殊的抽象类。但接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法,接口则包含类要实现的方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。二、特点1.接口不能用于实例化对象。2.接口没有构造方法。3.接口中所有的方法必须是抽象方法。(jdk1.7版本及以...原创 2018-07-22 13:29:40 · 202 阅读 · 0 评论 -
Java基础知识整理
一、Java中的注释作用:添加说明或屏蔽部分代码。分类:单行注释、多行注释、文档注释。例://单行注释/* 多行注释 多行注释 多行注释 *//** * 文档注释 * 文档注释 */二、关键字关键字是被Java语言赋予特殊含义,具有专门用途的单词,都为小写字母。 还有true、false、null三、标识符开发人员自己定义的名...原创 2018-07-16 14:11:47 · 352 阅读 · 0 评论