java学习
文章平均质量分 68
huifeidezhu521
1知道的越多,不知道的越多!
2从今天开始正式上班学习!
展开
-
springboot中解决事务中调用异步Async方法
解决思路在数据添加的时候同时上传文件,采用异步进行文件服务器存储实现,问题是不能保证文件一定可以上传成功。异步方法其实是多线程执行任务,需要做的是进行阻塞。创建线程池并注入@Configuration@Slf4jpublic class ThreadPoolConfig { @Value("${asyncThreadPool.corePoolSize:10}") private int corePoolSize; @Value("${asyncThreadPool原创 2021-09-08 23:21:42 · 3033 阅读 · 0 评论 -
notify 和 wait 实现生产者消费者模型
对于wait()和notify()的理解void notify()唤醒在此对象监视器上等待的单个线程void notifyAll()唤醒在此对象监视器上等待的所有线程void wait( )导致当前的线程等待,直到其他线程调用此对象的notify( ) 方法或 notifyAll( ) 方法void wait(long timeout)是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行(释放锁,阻塞当前线程)void wait(lon.原创 2021-07-04 15:26:58 · 122 阅读 · 0 评论 -
全国省市数据结构从数据库到接口
数据库中存储省市级数据,id和pid的形式数据库结构DROP TABLE IF EXISTS `area`;CREATE TABLE `bfm_area` ( `AREA_ID` decimal(6,0) NOT NULL COMMENT '区域,网络服务区域,是一种逻辑的划分,通常和行政区域划分重叠', `PARENT_ID` decimal(6,0) DEFAULT NULL, `AREA_LEVEL` decimal(6,0) DEFAULT NULL, `AREA_NAME`原创 2020-11-24 00:07:41 · 715 阅读 · 1 评论 -
springboot-03 servlet三大组件
springboot注册Servlet三大组件【Servlet、Filter、Listener】SpringBoot默认以jar包的方式启动嵌入式的Servlet容器来启动SpringBoot的web应用,不需要进行xml文件配置。注册三大组件用以下方式SERVLET一般情况下显示需要写自己的servlet去继承HttpServlet,重写doPost和doGet方法。 //处理get请求 @Override protected void doGet(HttpServle原创 2020-08-20 18:54:50 · 253 阅读 · 0 评论 -
2020-08-19
java中的简单的循环语句for1 for的使用for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。1 遍历数组的传统方式 /* 建立一个数组 */ int[] integers = {1, 2, 3, 4}; /* 开始遍历 */ for (int j = 0; j<integers.length; j++){ int i = integers[j]; System.out.println(i)原创 2020-08-19 16:51:15 · 70 阅读 · 0 评论 -
java 内存模型 内存泄漏
这个问题自己本来应该会的,就是进行内存回收的出现了问题,但是一时没有反应过来。至于具体的信息需要参考java的内存模型:https://blog.csdn.net/huifeidezhu521/article/details/105289220Java是如何管理内存java的内存管理就是对象的分配与释放问题。分配就是程序运行进行,释放就是GC回收,当然可以手动释放。不管哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。GC为了能够正确释放对象,会监控每个对象的运原创 2020-05-21 16:12:06 · 108 阅读 · 0 评论 -
ConcurrentHashMap&HashMap&TableMap
首先HashMap的初始容量设置为16,其实必须是2的幂。问一个问题:Hashmap中的链表大小超过八个时会自动转化为红黑树,当删除小于六时重新变为链表,为啥呢?在源码中,有一个叫做_Factor,默认是0.75,根据泊松分布,也即是说单个hash桶内元素个数为8的概率小于百万分之一。所以以7为转折点,大于等于8的时候才进行转换为树,小于等于6的时候就化为链表。在多线程情况下,为保证线程安全,怎样使用HashMap?使用Collections.synchronizedMap(Map)创建线程原创 2020-05-18 19:51:51 · 1270 阅读 · 0 评论 -
HashMap的jdk版本不同
关于HashMap,其实在jdk1.8和1.7版本之间的差别还是蛮大的,这几天在经过认真分析和理解之后,通过实验将学习成果进行展示。首先提出一个问题:jdk1.7多线程环境下HashMap容易出现死循环?public class HashMapTest { public static void main(String[] args) { HashMapThread thread0 = new HashMapThread(); HashMapThread t原创 2020-05-18 16:39:30 · 415 阅读 · 0 评论 -
mysql原理,索引,存储过程
一、索引B+ Tree 原理1. 数据结构B Tree 指的是 Balance Tree,也就是平衡树。平衡树是一颗查找树,并且所有叶子节点位于同一层。B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具有 B Tree 的平衡性,并且通过顺序访问指针来提高区间查询的性能。在 B+ Tree 中,一个节点中的 key 从左到右非递减排列,如果某个指针的左右相邻 ke...原创 2020-04-15 15:20:46 · 136 阅读 · 0 评论 -
java容器,set,list,map,collection
一、概览容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。Collection 容器名 是否有序 是否可重复 null的个数List 有序 可重复 允许多个nullSet 无序 不可重复 只允许一个nullQueue 有序(FIFO) 可重复 通常不允许插入null1. SetSet判断两...原创 2020-04-11 13:45:49 · 154 阅读 · 0 评论 -
java线程编程认识
一、使用线程有三种使用线程的方法:实现 Runnable 接口实现 Callable 接口继承 Thread 类实现 Runnable 和 Callable 接口的类是在在线程中运行的任务,不是真正意义上的线程,最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的。实现 Runnable 接口任务的实现在run方法中public class MyRunn...原创 2020-04-04 11:44:58 · 61 阅读 · 0 评论 -
java的加载机制,jvm,虚拟机
从类的加载机制了解java内存模型。我尽量用通俗易懂的语言。方法区:用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。常量池:存放常量和类中的符号引用等信息。堆区:用于存放类的对象实例,是垃圾收集的主要区域("GC 堆")。栈区:每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,对应着一个...原创 2020-04-03 18:00:40 · 87 阅读 · 0 评论 -
SpringBoot项目开发---03--快速创建
概述:我使用的是IDEA,第一次创建没有使用Spring 初始化。1 快速创建工程在 IDEA上新建一个空的jar类型 的 maven 工程 选中Module选择jdk版本确定工程名和坐标名groupid和artifactId被统称为“坐标”是为了保证项目唯一性,maven仓库中依靠这两个属性来确定项目。GroupId:项目组织的唯一标识符,在实际开发中对应JAVA的包...原创 2019-08-20 14:52:09 · 104 阅读 · 0 评论