- 博客(42)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 史上最全之Spring Data详细讲解
万物之源-> 官方文档官网全是英文,一下是凭借个人理解以及大量时间总结的笔记,供大家参考项目源码下载// <!-- 简单查询语句 -->// @Query 代表等价的 JPQL 语句 // @Query from User u where u.userId=:userId
2017-12-25 14:52:13
2166
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JAVA8 linkedhashmap 源码阅读笔记
LinkedHashMap继承HashMapLinkedHashMap底层数据存储算法依旧是hash算法,只是LinkedHashMap通过类似链表连接维持对元素插入顺序的存储HashMap源码解读一:新增的三个成员变量transient LinkedHashMap.Entry< K,V> head; // 指向头结点的地址transient LinkedHashMap.Entry< K,V>
2017-08-07 08:57:11
2659
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JAVA 8 treemap 源码阅读笔记
TreeMap的key允许为空刚开始学习时就被告知treemap的key不能为空!!! 但是 随着学习的深入,自己读源码发现允许为空 大家详细研读此文,本文末尾列举treemap的key为空的案例TreeMap底层采用红黑树(R-B Tree) 数据结构,所以我们先了解红黑树部分逻辑结构在研读TreeMap底层代码。 红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键
2017-07-31 21:11:23
1012
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JAVA8 hashmap源码阅读笔记(红黑树链表)
一:hashmap的13 个成员变量static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; -> 数组默认初始容量:16static final int MAXIMUM_CAPACITY = 1 << 30; -> 数组最大容量2 ^ 30 次方static final float DEFAULT_LOAD_FACTOR = 0.75f;
2017-07-18 22:08:29
10520
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 深入浅出理解JAVA 8 Lambda表达式 Stream
JAVA 8 发布于2014年3月19日但是很多大公司现在还在用 JAVA 5 或者 JAVA 6,不过JAVA 新特性 Lambda 表达式 帮助我们开发者 Write less, do more,作为开发者的我们还是有必要详细了解的因此 本文将要详细讲解 JAVA 8 的Lambda 表示使用作为新特性 开发者使用应先阅读由Oracle公司发布的官方文档,基本了解Lambda 使用范围 ht
2017-05-18 21:14:59
3706
原创 MacOS idea 更新后 2019.03 无法启动
因破解原因,修改idea.properties导致文件找不到idea 2019.3版本手动修改idea.properties失效,需要进入idea,点击Configure–>Edit VM Options若无法打开idea,则进入idea的包结构,进入MacOS文件夹,点击idea的可执行文件,会进行命令行提示,提示时候有对应的实际上读取文件的路径,修改这个读取文件就可以了...
2020-02-24 15:06:52
377
1
原创 一篇文章带你复习mysql事务相关概念
MySQL数据库事务隔离级别READ-UNCOMMITTEDREAD-COMMITTEDREPEATABLE-READ(mysql默认事务级别)SERIERLIZED不可重复读和幻读到底有什么区别呢?数据库的悲观锁和乐观锁实现上有什么区别呢?READ-UNCOMMITTED存在脏读问题(读取未提交数据)A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的...
2019-09-11 14:59:04
275
原创 ConCurrentHashMap源码详解
HashMap 简述 HashMap 是由于数组+链表组成,数组默认初始容量为 16,Hash 表每次扩容都变为原来的两倍,默认负载因子的大小为0.75(若小于0,抛异常),负载因子是表示一个散列表的空间的使用程度,有这样一个公式:数组容量*负载因子大小=HashMap的容量,如果负载因子是默认的0.75,HashMap(16)的时候,占16个内存空间,实际上只用到了12个,超过12个就扩容(
2018-02-09 15:42:03
508
原创 springboot 集成 jpa 详解
采用maven配置项目结构: 添加相关依赖 <!-- SpringData-Jpa依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId>
2017-11-07 16:47:41
729
原创 初识SpringBoot,Mavern之环境搭建
什么是SpringBoot?Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。为什么使用Spring
2017-11-02 14:16:46
859
1
转载 Java程序员秋招面经大合集(BAT美团网易小米华为中兴等)
Cvte提前批 一面(电话)自我介绍介绍你的项目加密解密了解么?几种算法,讲一下你了解的多线程了解么?什么是线程安全?说一个你最熟悉的设计模式讲一下你项目中用到了哪些设计模式Java的hashmap的原理Hashmap的线程安全性,什么是线程安全的?如何实现线程安全二面(视频)自我介绍介绍项目Mysql的数据库引擎,区别特点设计模式了解?讲一下最熟悉的写一个单例模式,答主写
2017-10-09 20:38:31
2617
原创 使用Hibernate来看看
官方提供的优化措施尽量使用many-to-one,避免使用单项one-to-many灵活使用单向one-to-many不用一对一,使用多对一代替一对一配置对象缓存,不使用集合缓存一对多使用Bag 多对一使用Set继承使用显示多态 HQL:from object polymorphism=”exlicit” 避免查处所有对象消除大表,使用二级缓存
2017-10-05 19:55:18
312
原创 SpringData之repository接口详解
SpringData官方文档以下是本人阅读各种大牛博客 + 官方文档总结的知识点 避免大家学习走弯路 总结如下Repository 接口是 Spring Data 的一个核心接口,它不提供任何方法,开发者需要在自己定义的接口中声明需要的方法 与继承 Repository 等价的一种方式。@RepositoryDefinition 注解,并为其指定 domainClass 和 idClas
2017-10-01 13:31:19
4591
原创 阿里云ECS mysql数据库修改密码 远程登录
对于高于5.7版本的mysql 已经没有password的字段了新版本删除了这个字段,所以你需要修改msyql配置文件vi /etc/my.cnf在 [mysqld] 小节下添加一行skip-grant-tables=1重启mysql服务systemctl restart mysqld登录mysql数据库mysql -u root -p让你输入 password 直接回车,进入数据库界面use my
2017-09-29 09:16:32
1495
原创 springmvc 异步请求(json + ajax + jquery)
在网上找了好多资源 都是不完整的 ,花费2个小时才玩成springmvc + ajax + jquery + json 传递数据 现在为避免大家走弯路,珍惜大家时间 将自己的写的demo放出来供大家参考 源码及jar包下载路径一 : 导入jar包 二 : 配置web.xml 文件<!-- 请求过滤器 统一字符编码 --> <filter> <filter-name>Char
2017-09-26 15:16:35
582
原创 从面试题i = i++; 了解java内存模型
先问大家一个问题: int i = 0; i = i ++; System.out.print(i);// 结果为 0 int i = 0; int j = i ++; System.out.print(j);// 结果为 0 System.out.print(i);// 结果为 1首先该代码在C/C++平台运行 结果是1 因为C/C++所有操作都
2017-09-23 22:18:44
2141
原创 SpringMVC配置完成无法访问基础jsp页面
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <s
2017-09-16 13:59:21
1515
原创 JVM 垃圾回收器介绍
JAVA虚拟机规范没有规定实现来及回收的算法,因此不同厂商会有不同的垃圾回收器。如下是HotSpot虚拟机基于JDK1.7版本所包含的所有垃圾收集器: Serial(串行)收集最基本、发展历史最悠久的一种收集器。这个收集器是一个单线程的收集器,只使用一个CPU或一条收集线程去完成垃圾收集工作,最重要的是,在它进行垃圾收集的时候,必须暂停其他所有的工作线程,知道它收集结束。虽然有这个缺点,但是依然是
2017-09-10 10:01:20
487
原创 java虚拟机垃圾回收执行流程
判断对象是否存活算法一: 引用计数算法: 当对象被创建时为其分配一个引用计数器,每当有位置访问时,该计数器数值就加一,当引用失效时,计数器值就减少1,任何时刻计数器引用为0的对象便不可能在被访问,但这不是java虚拟机堆对对象判断存活的方式,原因在于:难以解决对象之间相互引用如下例子public class TestGC { private Object object = n
2017-09-05 07:31:35
801
原创 java虚拟机运行时内存分配
JAVA虚拟机运行时区图解程序计数器(PC寄存器):可以看做当前线程的字节码的行号指示器,根据指示器显示的值来执行吓一条字节码指令,每一条Java虚拟机线程都有自己的pc寄存器,任意时刻java虚拟机只会执行一个方法的代码,如果是native的寄存器的值为undefined(未定义),不是native方法寄存器的值为正在执行的虚拟机字节码指令的地址的地址每一条Java虚拟机线程都有自己的pc寄存
2017-08-21 08:47:00
1298
原创 代理模式三种实现案例
阅读本文需要一定面向对象以及类反射机制基础反射机制详解代理模式的主要作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的思想:为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 因此我们可以通过代理模式来实现对某个
2017-08-14 08:36:51
8792
原创 web.xml与注解配置servlet使用介绍
Servlet3.0是Java EE6规范的一部分所以说使用注解需要在JAVA EE6以上配置Servlet类 web.xml配置方法 <servlet> <servlet-name>servlet的名字</servlet-name> <servlet-class>servlet的路径</servlet-class> <init-param> <param
2017-08-09 07:45:41
4247
1
原创 Server Tomcat v9.0 Server at localhost failed to start
如图所示 出现这个问题代表你的web.xml配置错误,或注解配置错误,检查一下 服务器会在console提示所在类 或 所在web.xml行错误配置
2017-08-05 22:46:08
957
原创 JAVA 8 新时间 API java.time 使用简介
新的java.time包内类默认均采用ISO-8601时区标准<给计算机看的时间> Instant 时间戳 在时间线上的瞬间点 在ISO- 2007-12-03T10:15:30 -> 2007-12-03T10:15:30 .000Z。 <自己使用的日期时间> LocalDate 在ISO- 2007-12-03 -> 2007-12-03 。 LocalDateTime 在I
2017-07-13 23:16:59
614
原创 ForkJoinPool分支合并框架 核心思想->代码演示
线程池架构Fork-Join 框架就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。工作窃取 模式(work-stealing)当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,当该线程队列没有需要执行的任务时,再从一个随机线程的队列中偷一个并把它放在自己的队列中。相对于一般的线程池实现
2017-07-05 20:16:07
913
原创 JAVA线程并发性之CAS算法,模拟实现代码
在了解算法之前,我们先对回顾基本概念:原子性:具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题。volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见,使得对临界区资源的修改可以马上被其他
2017-07-04 12:43:24
662
1
原创 java nio 新的四种文件传输 直接缓冲与非直接缓冲 速度对比
直接缓冲区与非直接缓冲区:非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在JVM 内存 中 直接缓冲区:通过 allocateDirect() 方法或其他方法分配缓冲区,将缓冲区建立在物理内存中。可以提高效率;ORACLE 官方对直接缓冲与非直接缓冲解释直接与非直接缓冲区 字节缓冲区要么是直接的,要么是非直接的。如果为直接字节缓冲区,则Java 虚拟机会尽最大努力直接在
2017-07-03 13:26:01
1708
原创 java.nio --Path--Files--基本使用
Java NIO(New IO或 Non Blocking IO)是从java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。接下来几天我将努力学习,并分享nio包学习成果以下是nio包 interface Path的基本使用package com.xiaoqiang;impor
2017-06-30 22:34:46
485
原创 JTable表格实现动态更新的两种方式
JTable表格的构造方法JTable() 构造一个默认 JTable是使用默认的数据模型,默认的列模型和默认的选择模型对其进行初始化。 JTable(int numRows, int numColumns) 构造一个 JTable与 numRows和 numColumns使用空单元格 DefaultTableModel 。 JTable(Object[][] rowData, Obje
2017-06-30 09:19:14
7237
1
原创 使用Socket同一网络内文件传输
Serverpackage com.xiaoqiang.filetransfer;import java.io.BufferedInputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import
2017-06-13 21:44:14
437
原创 java.lang.NoClassDefFoundError org/apache/commons/collections/FastHashMap
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.FastHashMap是因为Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。例如在运行时我们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundErr
2017-06-12 22:13:48
686
原创 BeanUtils使用及其方法分析
BeanUtils被广泛的使用与三大框架。主要解决的问题是:把对象的属性数据封装到对象中。该工具提供字符式操作为对象属性提供封装。BeanUtils底层使用反射机制实现数据访问及封装使用前的准备工作 将commons-beanutils-1.9.3中的commons-beanutils-1.9.3.jar 将commons-logging-1.2中的commons-logging-1.2.jar
2017-06-09 23:28:17
4624
原创 类加载过程和反射机制使用详解
1.类的加载当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。 任何类被使用时系统都会建立一个Class对象。连接验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 static{}语句块 解析 将类的二进制数据中的符号
2017-06-09 01:35:09
897
原创 synchronized 和 lock 基本使用以及死锁分析
1.未加锁多线程程序未加锁可能产生安全问题线程未加锁可能造成数据重复访问如下程序 public class SellTickets implements Runnable{ private int ticketNumber = 100; @Override public void run() { while(true){ if(tic
2017-06-07 00:39:54
1421
原创 JAVA虚拟机规范读书笔记--栈,堆,方法区(内存分配)
JAVA虚拟机运行时内存分配PC寄存器JAVA栈JAVA堆方法区运行常量池本地方法栈PC寄存器每一条java虚拟机线程都有自己的pc寄存器,任意时刻java虚拟机只会执行一个方法的代码,若该方法不是native的pc寄存器保存正在执行的字节码指令地址,如果是native的pc寄存器的值为undefined(未定义)JAVA 栈每一条java虚拟机线程都有自己私有的java虚拟机栈,这个
2017-05-30 14:40:50
367
原创 JAVA虚拟机规范读书笔记--class文件结构及数据类型
1. class文件 文件格式.class 文件是代码通过虚拟机编译后产生的一种不依赖与平台以及硬件的二进制文件。2. 数据类型java虚拟机操作的数据类型分为两类,原始数据类型和引用类型。 原始数据: byte:8位有符号的二进制补码整数 默认 0 short:16位有符号的二进制补码整数 默认 0 byte:32位有符号的二进制补码整数 默认 0 byte:64位有符号的二进制补码整数
2017-05-26 22:54:50
268
原创 JAVA GUI 登录注册(连接数据库 oracle)
本案例听过图形用户界面GUI连接oracle数据库,对数据库进行添加,查询。源代码如下注册界面部分事件添加代码采用JAVA8的 Lambda 部分事件添加代码采用JAVA8的 Lambda —— Lambda详解package interfaces;import java.awt.BorderLayout;import java.awt.Color;import java.aw
2017-05-26 14:26:43
5771
3
转载 JAVA集合类基础特性
Set集合 (1)Set集合的特点 无序,唯一 (2)HashSet集合(掌握) A:底层数据结构是哈希表(是一个元素为链表的数组) B:哈希表底层依赖两个方法:hashCode()和equals() 执行顺序: 首先比较哈希值是否相同 相同:继
2017-05-12 17:26:20
402
原创 模拟PPT 实现播放图片
代码如下 package com.xiaoqiang;import java.awt.Component;import java.awt.Container;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java
2017-05-11 21:29:01
940
原创 史上最清晰易懂的JAVA深克隆和浅克隆讲解
深入浅出了解面向对象的深克隆和浅克隆阅读本文需要一定的面向对象基础和JavaIO流的相应知识!深克隆(要实现深克隆被克隆类以及被克隆类的引用必须实现Serializable接口)(未实现接口会抛出NotSerializableException异常) 定义:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被
2017-05-05 15:18:55
4412
springboot集成jpa
2017-11-07
阿里巴巴开发手册 最终版高清版PDF
2017-09-30
springmvc + jquery + ajax + json 异步传递数据
2017-09-26
commons-beanutils-1.9.3以及commons-logging-1.2
2017-06-09
JAVA类加载问题、何时加载静态语句块
2017-06-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人