![](https://img-blog.csdnimg.cn/20191203125833767.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA进阶知识
本专栏主要是JAVA的进阶知识,包括:JVM、GC、多线程、WEB、Spring和项目相关
IMUHERO
持续学习者
展开
-
在Intelij IDEA中修改maven为国内镜像(阿里)
国内镜像:阿里打开IntelliJ IDEA->Settings ->Build, Execution, Deployment -> Build Tools > Maven或者直接搜索maven具体如下图所示:而一般情况下在c:\Users\xx.m2\这个目录下面没有settings.xml文件,我们可以新建一个,settings.xml文件下的内容是...转载 2019-08-15 10:38:46 · 345 阅读 · 0 评论 -
前端:bootstrap table表格属性、列属性、事件、方法
目录一、使用前提二、基本属性 列参数 事件 方法 多语言一、使用前提1. 在html中引用table相应的包<link rel="stylesheet" type="text/css" href="css/bootstrap-table.min.css"/><script src="js/boot...原创 2019-07-24 15:17:15 · 9472 阅读 · 2 评论 -
DAG项目
目录一、Graph接口二、Path三、SparseGraph四、Tracer五、TreeMain函数一、Graph接口package IMUHERO.DAG;// 图的接口public interface Graph { /** * * @return */ int V(); /** ...原创 2019-10-18 22:05:37 · 332 阅读 · 0 评论 -
java自增的线程安全问题
一、自增会带来线程安全问题吗?为什么?会!1.i++在字节码层面分为三步:保存当前值,执行添加操作,更新新值2.多线程操作时,可能会同时获取到旧值(假设为1),添加操作后为2,第一个线程刷新新值为3,第二个刷新还是3。二、volatile可以保证线程安全吗?不可以!volatile只能保证可见性,以及顺序性但是不能保证多个线程同时操作三、如何保证线程安全?syn...原创 2019-10-14 22:47:47 · 1315 阅读 · 0 评论 -
并发补充学习笔记
1.start和run方法的区别(1)代码:编写代码尝试,Thread.currentThread().getName();新创建一个线程调用该方法,发现使用run会获得主线程的name,而使用start会获得当前Thread0的name;源码:(2)start里面有一个start0方法,start0是native的方法,到openJDK中去查找native包,发现Thread.c文件。...原创 2019-09-22 14:10:52 · 165 阅读 · 0 评论 -
并发视频学习笔记(二)
目录一、synchronized1.线程安全问题的主要原因及解决办法2.互斥锁的特性3.获取的锁的分类:二 、synchronized底层实现原理三、锁优化1.自旋锁2.自适应自旋锁3.锁消除4.锁粗化5.synchronized的四种状态6偏向锁6.轻量级锁7.锁的内存语义8.偏向锁、轻量级锁、重量级锁的汇总四、synchroniz...原创 2019-09-13 17:16:30 · 316 阅读 · 0 评论 -
并发视频学习笔记(一)
目录一、进程和线程的区别1.区别:2.关系二、start和run方法的区别1.区别2.源码层面:3.代码演示:4.Thread和Runnable的关系三、如何实现处理线程的返回值1.如何给run()方法传参2.如何实现处理线程的返回值四、线程的状态1.六个状态2.其中的无限期等待3.其中的限期等待4.注意:已经结束的线程不能再次调用...原创 2019-09-13 16:33:02 · 198 阅读 · 0 评论 -
并发基础学习笔记
目录一、基础知识1.多线程的实现2.synchronized关键字3.线程的状态4.sleep和wait的区别5.锁的类型和锁的优化6.ConcurrentLinkedQueue和LinkedBlockingQueue的区别7.前台线程和后台线程8.如何保证线程安全9.JVM的线程和操作系统的线程是什么关系?10.如何中断线程...原创 2019-09-13 15:45:27 · 157 阅读 · 0 评论 -
Spring理论知识整理
目录一、什么是Spring?二、你了解Spring IOC吗?三、Spring bean四、注解:五、数据访问(Dao)六、AOP七、Spring MVC一、什么是Spring?1.Spring是一个开源应用框架,旨在降低应用程序开发的复杂度2.他是轻量级的,低耦合的3.Spring包含众多内容,如:Spring core/Spring Boot/S...原创 2019-09-02 16:28:44 · 293 阅读 · 0 评论 -
Spring MVC 项目二:用户信息管理(难度2)
一、准备1.知识储备:在开始用户信息管理之前,希望你已经对Spring MVC的运行原理有所了解,并且了解构建一个Spring MVC项目的五个步骤,如果没有了解,请先看一下我前面的两篇文章:(1)Spring MVC基本概念(2)用MyElipse创建Spring MVC 项目一(难度1)2.工具准备:(1)mysql 和Navicat for MySQ ,如果还没安...原创 2019-07-26 10:58:11 · 199 阅读 · 0 评论 -
用MyElipse创建Spring MVC 项目一(难度1)
目录一、流程二、准备三、具体项目流程:1.新建java web工程2.建立Controller控制器3.建立Spring MVC容器映射规则4.建立Dispatcher Servlet与Spring MVC容器之间的关联5.部署工程一、流程接着上一篇博文,接下去将通过以下流程创建一个简易Spring MVC 项目1.新建java web工程(导入s...原创 2019-07-26 00:32:43 · 146 阅读 · 0 评论 -
Spring MVC基本概念
目录一、基本概念:二、Spring MVC 处理请求的方式:三、实现一个Spring MVC的步骤:一、基本概念:1.Spring MVC 是一种基于JAVA的实现了 Web MVC 设计模式的 请求驱动类型的轻量级web框架2.MVC的全称为Model-View-Controller,即模型-视图-控制器三层结构(如下图)3.三层结构具体功能Model:...原创 2019-07-25 23:24:00 · 199 阅读 · 0 评论 -
JAVA虚拟机栈的栈帧操作
常量池的信息关键部分分析:1.descriptor:(II)I,表示参数类型,两个Int相同的参数2.flags:ACC_PUBLI , ACC_STATIC ,表示类的修饰符是public和static3.Code部分stack = 2,表示操作数栈的深度为2locals = 3 ,本地变量容量为3args_size = 2,表示参数的大小是2个Lin...原创 2019-10-18 17:50:10 · 224 阅读 · 0 评论 -
JAVA内存回收机制-GC
目录一、基础概念:二、判断对象是否为垃圾的算法1.引用计数算法–判断对象的引用数量2.可达性分析算法–判断对象的引用链是否可达三、垃圾回收算法1.标记清除算法(Mark and Sweep)2.复制算法(Copying)3.标记-整理算法(Mark-Compact)4.分代收集算法(Generational Collector)(1)年轻代 Minor GC...原创 2019-09-05 14:47:40 · 179 阅读 · 0 评论 -
JAVA虚拟机(JVM):内存模型
目录一、基础概念:二、JDK8以后的JAVA内存模型(一)线程私有部分(二)线程共享部分:(三)内存模型中堆和栈的区别:(四)元空间、堆、线程独占部分间的联系——内存角度一、基础概念:1.内存简介:2.地址空间划分:JAVA程序是运行在内存里的,内存是需要将逻辑地址映射成物理地址,寻址空间会分成内核空间和用户空间,JAVA的程序用的是用户空间。...原创 2019-09-04 15:17:37 · 1053 阅读 · 0 评论 -
JAVA虚拟机(JVM):基础概念
目录一、谈谈你对JAVA的理解:二、平台无关性:三、JVM如何加载.class文件四、谈谈反射:五、谈谈ClassLoader及双亲委派模型六、类的加载方式:七、loadClass和forName的区别?一、谈谈你对JAVA的理解:二、平台无关性:1.通常将JAVA分为编译期和运行时编译期:JAVAC编译JAVA源码,生成字节码存入.class...原创 2019-09-04 10:56:56 · 127 阅读 · 0 评论 -
synchronized与Lock的区别与使用
版权声明:本文转载自作者:淳安郭富城 ,原文:https://blog.csdn.net/u012403290/article/details/64910926引言:昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和使用情况,同时,对synchronized的使用过程一些常见问题的总结,最...转载 2019-06-03 22:26:05 · 97 阅读 · 0 评论 -
JAVA的类加载机制和双亲委派模型
一、类加载机制1.什么是JAVA类加载机制:虚拟机把描述类的数据从.class中加载到内存,并对数据进行连接和初始化,最终形成可以被虚拟机直接使用的java类型。2.JAVA类的生命周期:加载 验证 准备 解析 初始化 使用 卸载-->类的加载过程(包含前五部分)3.类加载器(ClassLoader)(1)它很重要,工作在Class的加载阶段(...原创 2019-06-04 18:43:12 · 186 阅读 · 0 评论