JavaSE基础
dan_zhoudan
研究生阶段
展开
-
HashMap 底层存储原理
1. put方法 -- JDK1.7的头插法2. hash算法3. findVal(K, Entry<K,V> entry)JDK 1.8 HashMap1. hashmap中存储数据的结构?jdk8中hashmap 数组 + 链表 + 红黑树。每一个数据单元都是一个Node结构,Node中包含 key字段、value字段、next字段、hash字段。2. hsahmap散列表数组初始长度默认是16。散列表不是 new HashMap()时创建的...原创 2020-08-14 20:35:47 · 1171 阅读 · 1 评论 -
由浅入深解析ThreadLocal
1、ThreadLocal介绍1.1 官方介绍从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其它线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。我们可以得知ThreadLocal的作用是:提供线程内的局部变量,不同的线程之间不会相互干扰;这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公原创 2020-07-02 12:44:32 · 132 阅读 · 0 评论 -
设计模式 - 建造者模式
一、建造者模式介绍二、1、2、Builderpackage 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 · 149 阅读 · 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 · 100 阅读 · 0 评论 -
设计模式 - 单例模式
一、核心作用保证一个类只有一个实例,并且提供一个访问该实例的全局访问点(public开发公共方法)。二、饿汉式实现类初始化时,立即加载这个对象,也就没有了延时加载;天然的线程安全。package pattern.singleton;/** * 饿汉式单例模式 * @author zhou * */public class SingletonDemo1 { //类初始化时,立即加载这个对象;天然的线程安全 private static SingletonDemo1 s原创 2020-06-27 18:01:47 · 187 阅读 · 0 评论 -
多线程(七) -- 高级主题
一、任务定时调度使用 Timer 、 TimerTask1、TimerTask2、Timer3、代码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 · 164 阅读 · 0 评论 -
多线程(四) -- 并发协作
1、线程通信 -- 信号灯法2、代码原创 2020-06-20 15:04:40 · 131 阅读 · 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 · 198 阅读 · 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 · 115 阅读 · 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 · 125 阅读 · 0 评论 -
多线程(三)
一、守护线程二、线程同步1、概念线程同步是指在一个多线程环境下,保证数据的准确性和安全性,同时需要提高其性能。2、多线程_并发_同步_队列与锁(1)并发会导致线程不安全(2)线程同步使用线程同步机制(1) synchronized 锁的是当前对象this的资源(2)(3)...原创 2020-06-19 15:11:42 · 102 阅读 · 0 评论 -
Bootstrap datetimepicker控件 日期时间选择器 简单使用
bootstrap-datetimepicker 日期控件简单使用应用场景:表单日期填写,为防止用户随意输入日期,导致日期格式与springmvc默认的日期格式冲突(提交的数据格式不对:生日:日期; ),而报错错误springmvc默认日期是按照/的方式 :2020/12/12 springmvc源码简单分析 -- springboot版本:springboot1.× WebMvcAutoConfiguration.java 日期格式化器 默认日期格式: yyyy/MM/d...原创 2020-05-15 16:53:32 · 3133 阅读 · 1 评论 -
IDEA 集成maven插件,部署maven项目
1.配置idea seeting设置本地安装的maven路径QQ:2248745948WeChat:HHgood原创 2020-03-07 20:59:09 · 188 阅读 · 0 评论 -
IDEA 创建maven项目的各个文件路路径说明
1.项目结构2.路径显示E:\Study Program Files\apache-tomcat-9.0.19\webapps\maven_web\WEB-INF\classes\a.txtpath1:E:\Study Program Files\apache-tomcat-9.0.19\webapps\maven_web\b.txtpath2:E:\Study Program...原创 2020-03-07 15:22:05 · 1518 阅读 · 0 评论 -
java与Mysql --JDBC技术
# JDBCJava DataBase Connectivity Java数据库连接.## 第一步:准备数据库驱动在Maven中下载MySQL的驱动.![1555553733394](assets/1555553733394.png)![1555553766175](assets/1555553766175.png)## 第二步:构建SE项目![155555398852...原创 2019-04-21 15:34:48 · 225 阅读 · 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 · 113 阅读 · 0 评论 -
Java JDBC相关个人学习分享
[TOC]# 反射> 是Java高级中必须掌握的技术## Class类型当我们执行一个Java的源文件时,会把该源文件翻译成字节码文件(class),再由JVM里的解释器进行解释执行.在解释的时候需要通过类加载(ClassLoader)把上面的class文件加载到内存中.在这个class运行的过程中,它的所有信息(有哪些字段,有哪些方法.类名等)我们把它们叫做RTTI(R...原创 2019-04-21 15:29:14 · 112 阅读 · 0 评论