Javase_Javaee
文章平均质量分 81
Javase和javaee相关的知识
coderzpw
时间不在于你拥有多少,而在于你怎样使用。-艾克
展开
-
JUC并发编程入门
1.什么是JUCjava.util.concurrent(并发的)2.线程与进程进程:一个程序,例如CSDN.exe、QQ.exe等程序的集合;一个进程往往可以包含多个线程,至少包含一个!java默认有几个线程? 2个 main、GC线程:例如一个Typora进程,里面会包括写入、自动保存(都由线程负责)等线程对于java而言:Thread、Runnable、CallableJava真的可以开启线程吗? 开不了public synchronized void start() {原创 2021-03-26 14:16:23 · 1356 阅读 · 5 评论 -
JVM原理入门
1.类装载器ClassLoader负责加载class文件,class文件在文件开头有特定的文件标识,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构并且ClassLoader只负责class文件的加载,至于它是否运行,则是由Execution Engine决定 (快递员)虚拟机自带的加载器启动类加载器(Bootstrap)C++ :加载jdk原始自带的类,在jdk1.8.0_201\jre\lib\rt.jar下,如Object、String、ArrayList.原创 2021-04-06 15:13:22 · 508 阅读 · 7 评论 -
ThreadLocal的简单使用和原理
ThreadLocal的简单使用和原理ThreadLocal介绍ThreadLocal类与synchronized关键字区别ThreadLocal的内部结构ThreadLocal的核心方法源码ThreadLocal介绍官方介绍ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能够保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是 private static类型的,用于关联线程和线程上下文。白话:Thr原创 2021-10-17 17:13:16 · 387 阅读 · 0 评论 -
锁升级
Java对象头以32位虚拟机为例普通对象:数组对象:Mark Word结构:MonitorMonitor被翻译为监视器或管程每个Java对象都可以关联一个Monitor对象,如果使用synchronized给对象上锁(重量级)之后,该对象头的Mark Word中就被设置指向Monitor对象的指针,如下图:Monitor结构图:刚开始Monitor中Owner为nul当Thread-2执行synchronize(obj)就会将Monitor的Owner(所有者)置为Thr转载 2021-04-16 12:04:49 · 180 阅读 · 0 评论 -
JAVA并发多线程个人进阶1
多线程访问共享资源一个程序运行在多个线程本事是没有问题的问题出在多个线程访问共享资源多个线程读共享资源其实也没问题在多个线程对共享资源读写操作发生指令交错,就会出现问题一段代码块内如果存在对共享资源的多线程写、读操作,称这段代码块为临界区如以下代码:public class Counter { static int counter = 0; // 共享资源 // 临界区 static void increment(){ counte原创 2021-04-25 18:29:25 · 291 阅读 · 1 评论 -
多线程入门
线程应用异步调用public class Test1 { public static void main(String[] args) { new Thread(()->{ try { Thread.sleep(1000); // 休眠一秒 } catch (InterruptedException e) { e.printStackTrace();原创 2021-04-11 16:08:04 · 237 阅读 · 3 评论 -
线程池-自定义线程池
目录自定义线程池自定义线程池原创 2021-05-12 23:01:59 · 243 阅读 · 0 评论 -
线程池基础入门
文章目录线程池的状态构造方法newFixedThreadPool线程池的状态ThreadPoolExecutor使用int的高3位来标识线程的状态,低29位表示线程数量构造方法corePoolSize 核心线程数(最多保留的线程数)maximumPoolSize 最大线程数目keepAliveTime 生存时间 - 针对救急线程unit 时间单位 - 针对救急线程workQueue 阻塞队列threadFactory 线程工厂 - 可以为线程创建时起个好名字handler 拒绝策原创 2021-05-28 15:09:04 · 530 阅读 · 0 评论 -
判断异步线程是否执行完成
判断异步线程是否执行完成单个线程的情况线程池的情况总结单个线程的情况可是使用join()方法思考如下代码:public class ThreadPoolTest { static int r = 0; public static void main(String[] args) throws InterruptedException { Thread t = new Thread(() -> { System.out.println原创 2021-09-14 18:54:32 · 3962 阅读 · 2 评论 -
SimpleDateFormat线程安全问题
SimpleDateFormat线程安全问题简述SimpleDateFormat线程不安全问题示例format单线程下调用format多线程下调用parse单线程下调用parse多线程下调用线程不安全问题的原因SimpleDateFormat 与 DateFormatformat方法线程不安全原因parse方法线程不安全原因简述SimpleDateFormat在工作中,我们经常需要将日期在String和Date之间做转化,此时需要使用SimpleDateFormat类。使用SimpleDateForm原创 2021-11-06 19:29:38 · 621 阅读 · 0 评论 -
无锁-乐观锁
目录问题提出无锁-实现线程安全问题提出有如下需求,保证account.withdraw取款方法的线程安全import java.util.ArrayList;import java.util.List;class TestAccount{ public static void main(String[] args) { Account account = new AccountUnsafe(10000); Account.demo(account);原创 2021-05-11 18:06:10 · 196 阅读 · 1 评论 -
Fastjson与Gson的简单使用
Json解析工具原创 2022-10-07 20:41:38 · 1021 阅读 · 1 评论 -
JVM-垃圾回收机制
垃圾回收算法 到 垃圾回收器垃圾回收概念1、什么是垃圾2、为什么需要GC3、早期垃圾回收4、Java垃圾回收机制垃圾回收相关算法1、标记阶段:引用计数算法2、标记阶段:可达性分析算法3、对象的finalization机制4、清除阶段:标记-清除算法5、清除阶段:复制算法6、清除阶段:标记-压缩算法7、小结8、分代收集算法9、增量收集算法、分区算法垃圾回收相关概念垃圾回收器垃圾回收概念1、什么是垃圾什么是垃圾(Garbage)呢?垃圾是指在 运行程序中没有任何指针指向的对象, 这个对象就是需要被回收的原创 2021-12-05 16:25:30 · 10024 阅读 · 2 评论 -
入门级正则表达式
正则表达式原创 2022-09-03 23:08:41 · 465 阅读 · 0 评论 -
response.setContentType()的作用及参数
response.setContentType的作用及参数response.setContentType作用content-type对照表参考优秀文章response.setContentType作用response.setContentType(MIME)的作用是使客户端浏览器区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。MIME映射策略就是在网页中使用哪个应用程序(即插件),打开哪种文件。例如web浏览器就是通过MIME类型来判断文件是PNG图片。通过M原创 2021-10-31 15:25:05 · 15625 阅读 · 11 评论 -
Java对象分配(朝花夕拾)
今天朝花夕拾一波! 很简单的问题代码// p1(栈内存) new Person("小白", 17)(堆内存,地址:xxxxx1) p1 -> xxxxx1Person p1 = new Person("小白", 17);// p2 -> xxxxx2Person p2 = new Person("小红",19);// p3 -> xxxxx3Person p3 = new Person("小华",99);// p3重新指向p1指向的堆地址 p3 -> xxxxx1原创 2021-09-24 11:13:33 · 247 阅读 · 0 评论 -
序列化是否必须要实现serializable?
序列化是否必须要实现serializable?什么是序列化?为什么要序列化?具体应用序列化的常见形式java类需不需要实现Serializable接口?什么是序列化?简单来说,我们把对象从内存中变成可存储或传输的过程称之为序列化为什么要序列化?根本原因:需要将变量或对象从内存中取出来进行存储或传输具体应用对象保存到文件或数据库网络编程时对象跨平台跨语言传输,也即从windows上序列化的对象可到linux上反序列化,用c#序列化的对象可以被java反序列化。序列化的常见形式转换成二进原创 2021-09-25 16:40:44 · 3870 阅读 · 3 评论 -
Java反射机制
Java反射机制反射的概念Class类Class类的介绍Class对象的获取通过Class对象获取 并 使用成员变量通过Class对象获取 并 使用构造方法通过Class对象获取 并 使用成员方法总结反射的概念Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它任意一个方法和属性。这种动态获取类信息以及动态调用对象方法的功能称为Java语言的反射机制。Class类Class类的介绍Class类是Java中十分重要的一个类,我们想要使用原创 2022-01-18 18:15:05 · 858 阅读 · 0 评论 -
fastjson的常用操作
fastjson的常用操作Java对象 转成 JSON字符串JSON字符串 转成 Java对象复杂JSON对象 的操作首先引入一个JavaBean类public class Admin { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) {原创 2022-03-29 10:50:12 · 1193 阅读 · 0 评论 -
字符串判空
字符串判空StringUtils.isEmpty(已被弃用)StringUtils.hasLengthStringUtils.hasText总结、测试StringUtils.isEmpty(已被弃用)源码:/** @deprecated */@Deprecatedpublic static boolean isEmpty(@Nullable Object str) { return str == null || "".equals(str);}功能:若字符串为 null 或者 空串原创 2022-03-21 11:37:58 · 4202 阅读 · 0 评论