自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (11)
  • 收藏
  • 关注

原创 Callable接口

Callable1、可以有返回值2、可以抛出异常3、方法不同,run()/call()代码测试:package com.chao.unsafe.callable;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 1、探究原理 * 2、觉得自己会用 */public c

2021-04-25 17:48:10 128 1

原创 集合类不安全

集合类不安全List不安全package com.chao.unsafe;import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;//java.util.ConcurrentModificationException 并发修改异常!public class ListTest { public static void main(String[] args) { //List<Strin

2021-04-23 22:17:33 121

原创 深刻理解锁

深刻理解锁如何判断锁的是谁! 永远的知道什么是锁,锁到底锁的是谁!Test1.javapackage com.chao.lock8;import java.util.concurrent.TimeUnit;/** * 8锁,就是关于锁的8个问题 * 1、标准情况下,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 * 2、sendSms延迟4秒,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 */public class Test1 { publ

2021-04-22 22:23:42 135

原创 线程状态及小结

线程状态小结:继承Thread类子类继承Thread类具备多线程能力启动线程:子类对象.start()不建议使用:避免OOP(面向对象的编程)单继承局限性实现Runnable接口实现接口Runnable 具有多线程能力启动线程:传入目标对象+Thread对象.start()推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用//一份资源StartThread4 station = new StartThread4();//

2021-04-20 20:09:49 85

原创 生产者和消费者问题

生产者和消费者问题面试常问的问题:单例模式、排序算法、生产者和消费者、死锁旧版 Synchronized wait notifyjuc -->lock生产者和消费者问题Synchronized 版package com.chao.pc;/** * 线程之间的通信问题:生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B操作同一个变量 num = 0 * A num+1 * B num-1 */public class A { public

2021-04-19 22:27:28 75

原创 Synchronized 和 Lock区别

Lock锁代码:package com.chao.demo01;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class SaleTicketDemo02 { public static void main(String[] args) { //并发:多线程操作同一个资源类,把资源类丢入线程 Ticket2 ticket

2021-04-19 20:57:20 112 1

原创 JUC并发编程(小细节)

多线程进阶=>JUC并发编程自身基础:Java多线程的基础1、什么是JUC源码+官方文档 面试高频问java.util工具包 包、分类业务:普通的线程代码 ThreadRunnable没有返回值,效率相比于Callable相对较低!2、线程与进程线程、进程,如果不能使用一句话说出来的技术,不扎实!进程:一个程序,QQ.exe Music.exe 程序的集合 ; .jar一个进程往往可以包含多个线程,至少包含一个!Java默认有几个线程?

2021-04-17 22:05:48 59

原创 Java中反射操作注解

反射操作注解getAnnotationsgetAnnotation对象关系映射(简称ORM)ORM?Object relationship Mapping类和表结构对应属性和字段对应对象和记录对应利用注解和反射完成类和表结构的映射关代码:package com.chao.reflection;import java.lang.annotation.*;import java.lang.reflect.Field;//练习反射操作注

2021-04-16 10:56:57 148

原创 反射操作泛型

反射操作泛型Java采用泛型擦除的机制来引入泛型(类加载进去的时候就产生一个class对象),java中的泛型仅仅是给编译器Javac使用的,确保数据的安全性和免去强制类型转换问题,但是,一旦编译完成,所有和泛型有关的类型全部擦除(垃圾回收站)。为了通过反射操作这些类型,Java新增了ParameterizedType,GenericArrayType,TypeVariable和WildcaredType几种类型来代表不能被归一到Class类中的类型但是又和原始类型齐名的类型。Parame

2021-04-15 22:11:28 285

原创 Java中获取类的运行时结构

获取运行时类的完整结构通过反射获取运行时类的完整结构Field(属性)、Method(方法)、Constructor(构造器)、Superclass(父类)、Interface(接口)、Annotation(注解)实现的全部接口所继承的父类全部的构造器全部的方法全部的Field注解. . .package com.chao.reflection;import javax.naming.Name;import java.lang.reflec

2021-04-14 21:22:08 72

原创 类加载器

类加载器类加载器的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收这些Class对象。package com.chao.reflection;public class Test07 { publi

2021-04-14 12:26:22 97 1

原创 分析类的初始化

分析 类 初始化什么时候会发生类类初始化?类的主动引用(一定会发生类的初始化)当虚拟机启动,先初始化main方法所在的类new一个类的对象调用类的静态成员(除了final常量)和静态方法使用java.lang.reflect包的方法对类进行反射调用当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类类的被动引用(不会发生类的初始化)当访问一个静态域时,只有真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导致子类初始化

2021-04-13 23:42:16 59

原创 Java内置内存分析

Java内存分析package com.chao.reflection;public class Test05 { public static void main(String[] args) { A a = new A(); System.out.println(A.m); /* 1.加载到内存,会产生一个类对应的Class对象 2.链接 , 链接结束后 , m = 0 3.初始化

2021-04-11 21:59:43 154

原创 Java中的反射

Java ReflectionReflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API 取得任何类的内部信息(–>类,类名,类的接口,类的方法,类的字段,类的属性等等),并能直接操作任意对象的内部属性及方法.Class c = Class.forName(“java.lang.String”)加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息

2021-04-08 17:15:35 105

原创 静态语言 VS 动态语言

静态语言 VS 动态语言动态语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化.通俗点说就是在运行时代码可以根据某些条件改变自身结构.主要动态语言:Object-C、C#、JavaScript、PHP、Python等.静态语言与动态语言相对应的,运行时结构不可变的语言就是就是静态语言.如Java、C、C++.Java不是动态语言,但Java可以称之为“准动态语言”. 即Java有一定的动态性,我们可以利用

2021-04-08 17:14:38 56

原创 Java中的注解

什么是注解Annotation是从JDK5.0开始引入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没有什么区别)可以被其他程序(比如:编译器等)读取.Annotation的格式:注释是以“@注释名”在代码中存在的,还可以添加一些参数值.例如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用?可以附加在package,class,metho

2021-04-07 16:59:10 215 1

原创 Java中注释的形式

单行注释单行注释 // #双斜杠快捷键:Ctrl + /多行注释多行注释 /* */ #单斜杠星号 星号单斜杠快捷键:Ctrl + shift + /文档注释多行注释 /** */ #单斜杠星号星号 星号单斜杠public class HelloWorld{ /** * @author zhuimengwangzi * @param args no * @since 1.0 * @throws null */ public static void main(

2021-04-01 14:54:49 202

原创 CMD控制台(命令提示符)的打开方式

打开CMD的方式打开+系统+命令提示符Win键 +R 输入cmd 打开控制台(推荐使用)在任意的文件夹下面,按住shift键+鼠标右键点击+在此处打开命令行窗口资源管理器的地址栏前面加上cmd路径管理员方式运行选择以管理员方式运行常用的DOS命令#盘符切换#查看当前目录下的所有文件 dir#切换目录 cd change directory#返回上一级目录 cd..#清理屏幕 cls (clear screen)#退出终端 exit#查看电脑的ip ipconfig#打开应用

2021-03-30 17:54:02 3886 1

原创 JDK的卸载与安装

卸载JDK删除Java的安装目录删除JAVA_HOME删除path下关于Java的目录java-version安装JDK百度搜索JDK8,找到下载地址同意协议下载电脑对应的版本双击安装JDK记住安装的路径配置环境变量我的电脑–>右键–>属性环境变量–>JAVA_HOME配置path变量测试JDK是否安装成功打开cmdjava-version...

2021-03-29 17:13:36 41

原创 HelloWorld的命令提示符运行和命名规则

HelloWorld随便新建一个文件夹,存放代码新建一个Java文件文件后缀名为.javaHello.java【注意点】系统可能没有显示文件后缀名,我们需要手动打开编写代码public class Hello{ public static void main(String[] args){ System.out.println("Hello,World!"); }}[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZzc7

2021-03-28 18:29:00 315 1

原创 初识CSDN-markdown编辑器

MarkDown学习标题三级标题四级标题字体HelloWorld!HelloWorld!HelloWorld!HelloWorld!引用选择狂神学java,走向人生巅峰分割线图片超链接点击跳转到狂神博客列表ACABC表格名字性别生日张三男1997.1.1代码public...

2021-03-01 22:28:38 71

原子引用和Java中的锁.md

原子引用和Java中的各种锁

2021-05-14

单例模式和CAS(CompareAndSet).md

玩转单例模式及比较并交换CAS

2021-05-13

JMM(Java内存模型)及Volatile底层实现原理.md

Java内存模型及Volatile底层实现原理

2021-05-12

Stream流式计算、ForkJoin和异步回调.md

Java进阶部分,Stream流式计算,分支合并和异步回调

2021-05-12

Maven详细描述.md

Maven的详细描述,Java编程爱好者

2021-05-09

阻塞队列、线程池和四大函数式接口.md

java进阶部分

2021-05-08

读写锁及多线程常用辅助类.md

java的编程爱好者及属于java进阶部分

2021-04-27

图形用户界面(GUI)编程.md

Java语言编程爱好者,开发人员

2021-04-19

获取类的运行时结构.md

文章内容适合Java爱好者

2021-04-16

动态创建对象执行方法及反射操作泛型.md

文章内容适合Java编程爱好者

2021-04-16

反射操作注解与反射操作泛型.docx

文章内容适合Java编程爱好者

2021-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除