JavaSE基础
dan_zhoudan
研究生阶段
展开
-
HashMap 底层存储原理
1. put方法 -- JDK1.7的头插法 2. hash算法 3. findVal(K, Entry<K,V> entry) JDK 1.8 HashMap 1. hashmap中存储数据的结构? jdk8中hashmap 数组 + 链表 + 红黑树。每一个数据单元都是一个Node结构,Node中包含 key字段、value字段、next字段、hash字段。 2. hsahmap散列表数组初始长度 默认是16。散列表不是 new HashMap()时创建的...原创 2020-08-14 20:35:47 · 1182 阅读 · 1 评论 -
由浅入深解析ThreadLocal
1、ThreadLocal介绍 1.1 官方介绍 从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其它线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。 我们可以得知ThreadLocal的作用是:提供线程内的局部变量,不同的线程之间不会相互干扰;这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公原创 2020-07-02 12:44:32 · 134 阅读 · 0 评论 -
设计模式 - 建造者模式
一、建造者模式介绍 二、 1、 2、Builder package builder; public class DHUBuilder implements AirShipBuilder{ @Override public String buildModule(String module) { return module; } @Override public String buildEngine(String engine) { return engine;..原创 2020-06-27 20:39:07 · 153 阅读 · 0 评论 -
设计模式 - 工厂模式
一、工厂模式介绍 二、简单工厂模式,也称为静态工厂模式 简单工厂的缺点:不满足OCP开闭原则;实际开发使用较多 package factory.simplefactory; public class Factory { public Car product(String type) { if("奥迪".equals(type)) { return new Audo(); }else if("比亚迪".equals(type)) { return new Bdy.原创 2020-06-27 20:00:21 · 101 阅读 · 0 评论 -
设计模式 - 单例模式
一、核心作用 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点(public开发公共方法)。 二、饿汉式实现 类初始化时,立即加载这个对象,也就没有了延时加载;天然的线程安全。 package pattern.singleton; /** * 饿汉式单例模式 * @author zhou * */ public class SingletonDemo1 { //类初始化时,立即加载这个对象;天然的线程安全 private static SingletonDemo1 s原创 2020-06-27 18:01:47 · 192 阅读 · 0 评论 -
多线程(七) -- 高级主题
一、任务定时调度 使用 Timer 、 TimerTask 1、TimerTask 2、Timer 3、代码 package com.dhu.thread.others; import java.util.Timer; import java.util.TimerTask; /** * 任务定时调度:Timer和TimerTask类 * @author zhou * */ public class TimerTest01 { public ...原创 2020-06-20 17:00:52 · 167 阅读 · 0 评论 -
多线程(四) -- 并发协作
1、线程通信 -- 信号灯法 2、代码原创 2020-06-20 15:04:40 · 137 阅读 · 0 评论 -
多线程(六) -- 线程协作
一、生产者消费者模式 1. 线程通信问题 2. 线程通信解决方式 (1)管程法 (2)信号灯法 3、生产者消费者代码 package com.dhu.thread.cooperation; /** * 协作模型:生产者消费者实现方式一:管程法 * 借助缓冲区 * @author zhou * */ //生产者 class Productor extends Thread{ SynContainer container; public ...原创 2020-06-20 13:46:09 · 202 阅读 · 0 评论 -
多线程(五)
一、死锁 二、案例 (1) package com.dhu.thread.cinema; class LipStack{ } class Mirror{ } class Markup implements Runnable{ static LipStack lipstick = new LipStack(); static Mirror mirror = new Mirror(); private int choice; pri...原创 2020-06-20 11:23:39 · 118 阅读 · 0 评论 -
多线程 -- 并发与同步
1、场景:模拟12306网站,多线程抢票系统 使用同步方法 2、分析 Thread的构造方法中持有一个Runnable对象 需要传入哪个线程对象在订票,也就是说synchronized同步方法必须放在Web12306这个类,因为购票时需要锁Web12306,而不是锁Passenger。Passenger继承了Thread,是一个代理对象。 //Web12306作为线程的目标对象target public Passenger(Runnable target,String name,int原创 2020-06-20 10:16:28 · 133 阅读 · 0 评论 -
多线程(三)
一、守护线程 二、线程同步 1、概念 线程同步是指在一个多线程环境下,保证数据的准确性和安全性,同时需要提高其性能。 2、多线程_并发_同步_队列与锁 (1)并发会导致线程不安全 (2)线程同步 使用线程同步机制 (1) synchronized 锁的是当前对象this的资源 (2) (3) ...原创 2020-06-19 15:11:42 · 105 阅读 · 0 评论 -
Bootstrap datetimepicker控件 日期时间选择器 简单使用
bootstrap-datetimepicker 日期控件简单使用 应用场景:表单日期填写,为防止用户随意输入日期,导致日期格式与springmvc默认的日期格式冲突(提交的数据格式不对:生日:日期; ),而报错错误 springmvc默认日期是按照/的方式 :2020/12/12 springmvc源码简单分析 -- springboot版本:springboot1.× WebMvcAutoConfiguration.java 日期格式化器 默认日期格式: yyyy/MM/d...原创 2020-05-15 16:53:32 · 3148 阅读 · 1 评论 -
IDEA 集成maven插件,部署maven项目
1.配置idea seeting 设置本地安装的maven路径 QQ:2248745948 WeChat:HHgood原创 2020-03-07 20:59:09 · 190 阅读 · 0 评论 -
IDEA 创建maven项目的各个文件路路径说明
1.项目结构 2.路径显示 E:\Study Program Files\apache-tomcat-9.0.19\webapps\maven_web\WEB-INF\classes\a.txt path1:E:\Study Program Files\apache-tomcat-9.0.19\webapps\maven_web\b.txt path2:E:\Study Program...原创 2020-03-07 15:22:05 · 1534 阅读 · 0 评论 -
java与Mysql --JDBC技术
# JDBC Java DataBase Connectivity Java数据库连接. ## 第一步:准备数据库驱动 在Maven中下载MySQL的驱动.   ## 第二步:构建SE项目 ![155555398852...原创 2019-04-21 15:34:48 · 229 阅读 · 0 评论 -
记录自己的Java学习之路 --IDEA maven的web工程构建入门 (一)
由于之前使用传统的方式构建java web工程,导入lib里的jar包一直报错,jar包的版本问题很头疼,改用maven。 首先,创建一个maven项目,选择已有的模板 - webapp。MySQL数据库版本为mysql8。 首先,测试自己的数据库连接是否正常,才能继续后面的业务呢! druid.properties的配置: driverClassName=com.mysql.cj.jd...原创 2020-02-18 21:15:15 · 114 阅读 · 0 评论 -
Java JDBC相关个人学习分享
[TOC] # 反射 > 是Java高级中必须掌握的技术 ## Class类型 当我们执行一个Java的源文件时,会把该源文件翻译成字节码文件(class),再由JVM里的解释器进行解释执行.在解释的时候需要通过类加载(ClassLoader)把上面的class文件加载到内存中. 在这个class运行的过程中,它的所有信息(有哪些字段,有哪些方法.类名等)我们把它们叫做RTTI(R...原创 2019-04-21 15:29:14 · 113 阅读 · 0 评论
分享