自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 垃圾收集器与内存分配策略

垃圾收集器与内存分配策略1、那些内存需要回收2、对象已死吗?1、引用计数法2、可达性分析法3、再谈引用3、垃圾收集算法1、标记-清除算法2、复制算法3、标记-整理算法4、分代收集算法5、堆内存分区详解6、垃圾收集器1、新生代收集器:1、Serial收集器2、ParNew 收集器3、Parallel Scavenge收集器2、老年代收集器1、Seria...

2018-08-28 16:06:05 269

原创 JVM入门-自动内存管理机制

1、了解历史1、JDK、JRE、JVM 之间的关系2、Java 的发展史以后补充3、Jvm发展史以后补充2、自动内存管理机制1、Java内存区域与内存溢出异常1、运行时数据区域(5)Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟...

2018-08-28 09:49:08 299

原创 JUC_并发容器

并发容器1、概述JUC提供了用于多线程上下文中的Collection实现与高效的、可伸缩的、线程安全的非阻塞FIFO队列。1、List CopyOnWriteArrayList CopyOnWriteArrayList相当于线程安全的ArrayList。 2、Set CopyOnWriteArraySet 相当于线程安全的 Hash...

2018-08-24 14:34:29 656

原创 JUC-Lock

Lock (JUC锁)1、概述2、Lock与ReentrantLock1、概述2、API3、代码3、AQS1、概述2、总结4、Condition5、ReentrantReadWriteLock1、概述2、使用场景3、特性6、StampedLock1、概述2、代码3、StampedLock 原理7、CountDownLatch、Semaphor...

2018-08-23 19:59:22 1432

原创 JUC-Atomic(原子类)

Atomic(原子类)1、概述2、详情3、常见问题1、原子类可以替换锁么2、原子类和java.lang.Integer等类的区别4、原子方式更新单个变量1、API2、变量的原子访问和更新3、实现原理5、原子方法更新数组1、API2、数组的原子访问和更新3、实现原理6、原子方式更新引用1、API2、引用的原子访问和更新7、原子方式更新类的指定vo...

2018-08-23 16:01:20 1018

转载 JUC-概述

参考链接1、概述JUC是java.util.concurrent包的简称1、JUC的整体结构2、atomicjuc包下的原子类3、locks以下是 juc 中的锁,也称显示锁4、collectionsJUC 下面的并发容器5、ThreadPool以下是JUC中与线程池有关的类6、tools以下是JU...

2018-08-23 15:59:15 1541

转载 CAS算法原理

CAS算法原理1、什么是CAS?2、CAS算法理解CAS算法原理1、什么是CAS?CAS:Compare and Swap,即比较再交换。jdk5增加了并发包java.util.concurrent.*,其下面的类使用 CAS 算法实现了区别于 synchronouse(同步锁)的一种乐观锁。JDK 5之前 Java 语言是靠 synchronized 关键字...

2018-08-23 09:24:38 1049 1

原创 多线程情况下建议使用while而不是if

在多线程的编程实践中,wait()的使用方法如下:synchronized (monitor) { //判断条件是否得到满足 while(!locked) { //等待唤醒 monitor.wait(); } //业务逻辑 .......}那为什么非要while判断,而不采用if判断呢?synchronize...

2018-08-22 21:00:38 1199

原创 volatile 代码解析

volatile 代码解析1、volatile 关键字,使一个变量在多个线程间可见2、volatile不能替代synchronizedvolatile 代码解析1、volatile 关键字,使一个变量在多个线程间可见A B线程都用到一个变量,java默认是A线程中保留一份copy,这样如果B线程修改了该变量,则A线程未必知道 使用volatile关键字,会让...

2018-08-22 16:48:24 166

转载 volatile解析

Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有...

2018-08-22 16:34:54 107

原创 BIO、NIO、AIO通信机制理解

BIO、NIO、AIO通信机制理解1、BIO的理解2、 伪异步 I/O 编程3、NIO (非阻塞 IO)4、AIO(异步非阻塞IO)5、总结BIO、NIO、AIO通信机制理解1、BIO的理解首先我们通过通信模型图来熟悉下BIO的服务端通信模型:采用BIO通信模型的服务端,通常由一个独立的Acceptor 线程负责监听客户端的连接(TCP),它接收到客...

2018-08-22 15:49:39 417

原创 多线程基础

一、多线程基础1、多线程引入学习多线程之前我们首先来看一下,下图程序代码的执行顺序==单线程:如果程序只有一条执行路径,那么该程序就是单线程程序====多线程:如果程序有多条执行路径,那么该程序就是多线程程序==2、什么是多线程要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在。1、什么是进程?进程就是正在运行的程...

2018-08-22 14:51:00 191

原创 NIO入门

1、Java NIO 简介深入部分请移步Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的 IO 有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 传统IO NIO 面向流(Stre...

2018-08-21 20:30:16 232

转载 java中并发常用工具类

前言:在你无聊的时候,想想比你优秀还努力的人,也许就不觉的无聊了今天下午没事干把买的java并发编程艺术这本书拿出来看了看,看了下也记不住,还是好记性不如烂笔头,今天讲四个并发中可能会用到的工具类,分别是:CountDownLatchCyclicBarrierSemaphoreExchange...

2018-08-14 21:30:47 299

转载 对TimeUnit的理解

对TimeUnit的理解1、什么是TimeUnitTimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(),在很长一段时间里Thread的sleep()方法作为暂停线程的标准方式,几乎所有Java程序员都熟悉它,事实上sleep方法本身也很常用而且出现在很多面试中。如果你已经使用过...

2018-08-14 18:43:22 790

原创 Spring注解驱动开发

概述组件注册注册Bean@Bean@ComponentScan设置Bean属性和动态注册Bean@Scope@Lazy@Conditional@ImportFactoryBean接口Bean的声明周期bean的后置处理器属性赋值@Value@Autowire.@Qualifier@Primary@Resource , @Inject@Auto...

2018-08-14 11:32:28 388

原创 Struts2入门-04

struts2拦截器拦截器的概述拦截器的实现原理拦截器和过滤器的区别自定义拦截器跟配置创建三种方式拦截器的配置(2种方式)struts2(标签)标签体系struts2的标签结构控制标签数据标签表单标签(略)非表单标签struts2拦截器拦截器的概述拦截器就是AOP(Aspect-Oriented Programming...

2018-08-11 08:47:53 152

原创 Struts2入门-03

OGNL表达式概述OGNL的作用OGNL的三要素使用OGNL准备工作语法OGNL与Struts2的结合结合原理Struts2与ognl结合的体现参数接收配置文件struts标签(明天讲)值栈详解什么是值栈值栈的内部结构值栈的创建和ActionContext对象的关系获取到值栈的对象向值栈中保存数据从值栈中获取值EL表达式也会获取到值栈中的数据...

2018-08-11 08:47:13 170

原创 Struts2入门-02

结果页面跳转结果页面的两种方式结果页面类型访问ServletAPI方式原理通过ActionContext(常用)通过ServletActionContext通过实现接口的方式总结如何获取参数拓展MVCAction的声明周期属性驱动获得参数模型驱动获得参数 ModelDriven封装集合类型的数据封装到List,map集合中...

2018-08-10 08:56:01 121

原创 Spring整合JPA

导入jar包配置配置文件db.propertiesapplicationContext.xmlDao层需要注意的地方测试代码导入jar包配置配置文件db.propertiesjdbc.user=rootjdbc.password=rootjdbc.driverClass=com.mysql.jdbc.Driverjdbc.jdbcU...

2018-08-09 08:53:16 108

原创 JPA入门02-关联关系

映射单向多对一的关联关系CustomerOrder测试映射单向一对多的关联关系(跟前面是类似的)CustomerOrder测试映射双向多对一的关联关系()双方默认都维护外键(外键在多的一方)CustomerOrder测试映射双向一对一的关联关系ManagerDepartMent测试映射双向多对多的关联关系(由一方放弃主键维护)ItemCat...

2018-08-09 08:48:39 263

原创 JAP入门01-基础

什么是JpaJDBC什么是JPAJPA与Hibernate的关系JPA的提供商创建JPA项目创建JPA工程配置配置文件 persistence.xml创建实体类在persistence.xml中加入实体类测试JPA注解详解EntityTableIdGeneratedValueBasicColumnTransientTemporal使用Tabl...

2018-08-09 08:47:13 4525

转载 Lombok减少重复代码

Lombok使用介绍在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。IDEA中的安装打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombo...

2018-08-07 20:28:04 409

转载 为什么选择SpringCloud作为微服务架构

Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本篇主要解答这两个问题:Spring Cloud在微服务的架构中都做了哪些事情?Spri...

2018-08-07 16:14:54 1756

原创 Spring入门

一 Spring概述Spring简介Spring的优点Spring在项目中所处的位置Spring核心功能作为工厂(容器):IOC(控制反转==依赖注入)AOP(面向切面)二 Spring项目搭建导包创建一个对象书写配置注册对象到容器Spring中的概念(思想)IOCDISpring中的工厂(容器)BeanFactory接口(过时)Ap...

2018-08-06 08:26:10 219

原创 Struts2入门-01

Struts2是什么概述快速搭建struts2框架导包书写Action类书写配置文件(src/struts.xml)配置核心过滤器到web.xml中测试struts2架构(访问流程)配置文件详解struts.xml配置struts2常量配置struts2默认常量配置位置修改struts2常量配置方式常量配置文件加载顺序常量配置分模块开发配置str...

2018-08-05 09:15:33 167

原创 Git速成

什么是GitGit文件的三种状态基本的Git工作流程:git的文件目录结构(版本库)GIT基本操作设置用户名和邮箱地址初始化Git仓库对Git仓库的CURD版本前进跟后退(git reset)1、从暂存区回退到工作区2、版本回退(3种方式)git diff (比较信息)比较暂存区域与工作目录比较2个历史快照比较当前工作目录和Git仓库中的快照比较暂存区域和G...

2018-08-05 09:12:16 454

转载 Hibernate#save方法详解

Hibernate Session的save()方法Session的save()方法使一个临时对象转变为持久化对象。例如以下代码保存一个Customer对象: Customer customer = new Customer(); customer.setId(new Long(9)); // 为Customer临时对象设置OID是无效的 customer.set...

2018-08-04 09:53:31 5429

原创 Hibernate入门-04

今天内容Hibernate的查询方式(5种)OID查询对项属性导航查询HQL概述完整的HQL语句结构基本查询排序查询分页查询条件查询聚合查询HQL的投影查询HQL多表查询(不常用)原生SQL(回顾)HQL连接查询QBC离线查询条件原生SQL查询优化(看文档比较好)hibernate的抓取策略概述延迟加载分类扩大Session的...

2018-08-04 09:48:27 164

原创 Hibernate入门-03

课程回顾:Hibernate第二天今天内容 (建议看pdf的第三天)一对多(添加联系人案例)javaWEB中一对多的设计以及建表原则编写JavaBean(注意一对多的编写规则)客户的JavaBean(一方)联系人的JavaBean(多方)编写客户和联系人的映射配置文件(注意一对多的配置编写)客户的配置文件(一方)联系人的配置文件(多方)操作客户和联系人的数据进行...

2018-08-04 09:44:39 176

原创 Hibernate入门-02

Hibernate框架第二天课程回顾:Hibernate框架的第一天今天内容Hibernate的持久化类什么是持久化类持久化类的编写规则主键的生成策略区分自然主键和代理主键Hibernate持久化对象的状态Hibernate的持久化类Hibernate的持久化类的状态瞬时态:Transient持久态:Persistent Object脱管态:Detached O...

2018-08-03 10:42:35 191

原创 Hibernater入门-01

框架和CRM项目的整体介绍什么是CRMCRM的模块模块的具体功能Hibernate框架的学习路线Hibernate框架的概述Hibernate框架的概述什么是ORM(对象关系映射)Hibernate优点Hibernate框架的快速入门案例一:完成客户的CRUD的操作需求分析第一步:下载Hibernate5的运行环境第二步:创建表结构第三步:搭建Hibe...

2018-08-03 00:00:06 426 1

原创 SpringData入门

SpringData概述SpringData JPA进行持久化开发的4个步骤框架搭建导入jar包配置配置文件Spring整合JPA(完整版)在Spring配置文件中配置SpringDataSpringData的约束Person类PersonRepository类代码测试(每完成一步测试一下)Repository接口详解Repository接口的概述Repo...

2018-08-02 21:17:03 574

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除