![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
AI蒸汽人
这个作者很懒,什么都没留下…
展开
-
[java]从spring cloud 1.x 升级到 2.0的简单示例教程
原 spring cloud 1.x 的示例项目地址: https://github.com/14251104246/spring-cloud-1.x-to-2.0-demo/tree/cloud1.x 升级到 spring cloud 2.x 的示例项目地址: https://github.com/14251104246/spring-cloud-1.x-to-2.0-demo/...原创 2018-07-09 15:49:08 · 428 阅读 · 0 评论 -
[java][源码分析]paoding-rose-jade框架源码分析(1)
在实习期间遇到最多的两个框架就是spring和paoding-rose了,所以看完spring源码分析的书,我就迫不及待的开始找paoding-rose的书了。可惜没找到,所以就自己动手分析吧。 spring源码分析的书可以在这里下载: http://download.csdn.net/download/qq523786283/99465521.正文paoding-rose框架包含很多子框架,而原创 2017-08-24 11:48:14 · 4825 阅读 · 0 评论 -
【java】【并发编程】线程封闭
线程封闭当访问共享的可变数据时,通常需要使用同步。一种避免使用同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步。这种技术被称为线程封闭。栈封闭局部变量的固有属性之一就是封闭在线程中。它们位于执行线程的栈中,其他线程无法访问这个栈。public int loadTheArk(Collection<Animal> candidates){ SortedSet<Animal转载 2017-09-04 17:01:31 · 228 阅读 · 0 评论 -
[java][spring]PropertyEditor
http://www.iteye.com/topic/1123628在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值。BeanWrapper填充Bean属性时如何将这个字面值转换为对应的double或int等内部类型呢?我们可以隐约地感觉到一定有一个转换器在其中起作用,这个转换器就是属性编辑器。转载 2017-08-14 11:49:01 · 225 阅读 · 0 评论 -
[java]Java Se:Java Security(java.security包)
Java Sandbox转自[](http://www.cnblogs.com/f1194361820/p/4189269.html)提到Java Security,就不得不说Java Sandbox模型。Java2 Security Model: Java2平台上,加载类时,会形成不同的sandbox,同时也会根据相关的security policy,为这些sandbox生成不同的安全转载 2017-08-14 10:03:41 · 1080 阅读 · 0 评论 -
[java][junit4][源码分析]JUnitCore-入口分析
1.从官网上了解它的运行过程https://github.com/junit-team/junit4/wiki/Getting-started 官网Getting-started教程总结: 1.创建一个单元测试类 CalculatorTest.java 2.编译CalculatorTest.java //javac -cp 指明了.java文件里import的类的位置//比如(';'指定多原创 2017-07-28 14:55:32 · 748 阅读 · 0 评论 -
【java】枚举学习2
在编写Java程序时经常会用到枚举(后面统一用enum描述)类型,今天我们就来看一下enum中常用到的values()方法。首先,我们在Eclipse中编写一个简单的类:public class EnumTest { private enum Directions { NORTH, SOUTH, EAST, WEST }}在这里,我们定义了一个名叫Direction转载 2017-07-17 15:16:21 · 187 阅读 · 0 评论 -
[java]枚举学习
测试代码[java] view plain copy print?package com.lxk.enumTest; /** * Java枚举用法测试 * <p> * Created by lxk on 2016/12/15 */ public class EnumTest { public static void main(String[] args) {转载 2017-07-17 15:03:26 · 193 阅读 · 0 评论 -
【java】jdbc重点总结
什么是JDBC,在什么时候会用到它?JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。JDBC接口及相关类在java.sql包和javax.sql包里。我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果。JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单。有哪些不同类转载 2017-06-13 15:05:50 · 1077 阅读 · 0 评论 -
【java】J2EE的13个规范
什么是J2EE?在企业级应用中,都有一些通用企业需求模块,如数据库连接,邮件服务,事务处理等.既然很多企业级应用都需要这些模块,一些大公司便开发了自己的通用模块服务,即中间件.这样一来,就避免了重复开发,开发周期长和代码可靠性差等问题.但是,各公司的中间件不兼容的问题就出现了,用户无法将它们组装在一起为自己服务.于是,”标准”就应运而生了.J2EE就是基于Java技术的一系列标准.J2EE是Java转载 2017-06-13 14:10:30 · 428 阅读 · 1 评论 -
【java】 HashMap与ConcurrentHashMap的区别
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap转载 2017-06-12 19:22:32 · 259 阅读 · 0 评论 -
[java][源码分析]paoding-rose-jade框架源码分析(2)
在分析动态代理回调的invoke 方法之前,我们先看下factory.create(UserDAO.class) 里面做了什么。1.JadeFactory工厂分析JadeFactory类的代码如下:public class JadeFactory { private RowMapperFactory rowMapperFactory = new DefaultRowMapperFactory(原创 2017-08-24 16:18:23 · 4702 阅读 · 0 评论 -
【java】【spring】spring cron表达式
spring cron表达式 Cron表达式是一个字符串,字符串以5或6个空格隔开,分开工6或7个域,每一个域代表一个含义,Cron有如下两种语法 格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year 或 Seconds Minutes Hours DayofMonth Month DayofWee转载 2017-09-01 15:32:49 · 489 阅读 · 0 评论 -
【java】多态性实现机制——静态分派与动态分派
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17965867方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址。这个特性给Java带来了更强大的动态扩展能力,使得可以在类运行期间才能确定某些目标方法的直接引用,称为动态连转载 2017-09-19 19:21:57 · 382 阅读 · 0 评论 -
[java][事务]tcc事务实战学习过程
学习项目:https://github.com/14251104246/spring-cloud-rest-tcc下载源码,进入源码目录运行:mvn clean packageDocker Compose运行 docker-compose -f infrastructure-compose.yml up -ddocker-compose -f basic-ms-compose.yml u...转载 2018-06-19 17:45:37 · 1477 阅读 · 0 评论 -
`spring boot`高并发秒杀测试
spring boot高并发秒杀测试 测试项目: https://github.com/14251104246/redis-demo.git准备使用docker-compose命令启动redis服务器(可以用其他方式启动)idea启动测试项目jmeter测试脚本 高并发秒杀-重现超卖问题.jmx高并发秒杀-有事务方式减少库存.jmx重现秒杀时出现的超卖问题...原创 2018-06-26 12:19:10 · 16032 阅读 · 9 评论 -
redisson-分布式锁与同步器学习
简单使用基本// 1. 创建配置对象Config = ...// 2. 创建redisson实例RedissonClient redisson = Redisson.create(config);// 3. 获得锁对象RLock lock = redisson.getLock("myLock");// 4. 上锁lock.lock();// 做你想做的。。。...转载 2018-06-11 10:33:29 · 2574 阅读 · 0 评论 -
mycat集成HAProxy实现高可用
启动HAProxy:docker run -p 3306:3306 -p 48800:48800 --name haproxy -e LANG=en_US.UTF-8 -v /etc/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --restart=always --net host haproxy:latest注意:即使docker没映...原创 2018-04-12 14:14:25 · 382 阅读 · 0 评论 -
【Java】mycat学习
分布式数据库基础(原理)分布式数据库的目录管理数据分片分布式查询处理分布式并发控制mycat核心概念逻辑库逻辑表(table)分片表非分片表er表(表分组)全局表(字典表)分片节点(dataNode)主机节点(dataHost)mycat配置详解本地xml配置方式schema.xml:管理逻辑库、分片表、分片节点和分片主机 schema标签(定义逻辑库)...原创 2018-04-10 16:29:36 · 243 阅读 · 0 评论 -
[Java]从spring(spring boot)的启动分析注解定义方式的bean的加载
spring boot启动的时候会创建一个注解配置嵌入式web应用上下文AnnotationConfigEmbeddedWebApplicationContext,在实例化这个ApplicationContext时,首先会先实例化它的父类GenericApplicationContext(在父类的构造方法中初始化一个BeanFactory),然后回到子类的构造方法中初始化注解bean定义阅读器An...原创 2018-03-13 15:47:43 · 1657 阅读 · 1 评论 -
【java】Proactor模式
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞IO、非阻塞IO、IO复用、信号驱动IO都是同步IO,转载 2017-11-22 22:08:04 · 517 阅读 · 0 评论 -
【java】Reactor模式详解
Reactor模式详解原文 前记第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名字而已,虽然它引入了EventLoop概念,这对我来说是新的概念,但是代码实现却是一样的,因而我并没有很转载 2017-11-22 19:38:30 · 1052 阅读 · 0 评论 -
【java】【开源代码分析】java并发编程与junit4
看完《java并发编程实战》这本书之后,我想在这里把书上的知识与一些开源代码浅显地联系起来,以巩固自己的知识。junit4本身虽然还没有支持多线程的注解(我在网上没找到),要多线程的测试功能的话大多数都是用自己或第三方实现的runner,但junit4也提供了一个并行运行runner和suites的策略。实现这个功能的主要类位于org.junit.experimental包中(感觉包名暗示这个功能是原创 2017-11-19 21:47:18 · 288 阅读 · 0 评论 -
[mybatis]自动扫描整个项目的mapper(并解决接口冲突)
mybatis的注解使用非常简便(因为不用编写一大堆xml语句)。 网上给出的使用教程简化如下 1.在spring配置文件添加以下bean <!-- 配置数据源,使用dbcp --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">原创 2017-11-10 16:55:28 · 10329 阅读 · 1 评论 -
[java]杂记4
1.使用Thread建立的线程默认情况下是前台线程,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止2.ResultSet结果集读取数据的方法主要是getXXX() ,他的参数可以使整型表示第几列(是从1开始的),还可以是列名。3. 启动一个线程的方法是 start()原创 2017-03-08 20:23:05 · 244 阅读 · 0 评论 -
JAVA自定义注解(Target,Retention,Documented,Inherit)
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解的注解。包括 @Retention @Target @Document @Inherited四种。1.1、@Retention: 定义注解的保留策略@Re转载 2017-06-28 20:52:12 · 961 阅读 · 0 评论 -
【java】Java常考面试题(学习笔记)
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2.JDK和JRE的区别是什么?Jav原创 2017-05-16 18:54:58 · 232 阅读 · 0 评论 -
[java]Robot类在一些程序窗口(如lol)中无法模拟点击的解决办法
如果程序或者游戏是通过管理员权限打开的,就无法模拟点击了。这时你只要用管理员权限打开你的java程序即可生效原创 2017-02-25 18:56:04 · 4285 阅读 · 2 评论 -
[算法-java] 将一个矩阵按照从外向里以顺时针的顺序打印出每一元素
import java.util.*;import static java.lang.System.out;/** * 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, * 例如,如果输入如下矩阵: * 1 2 3 4 * 5 6 7 8 * 9 10 11 12 * 13 14 15 16 * 则依次打印出数字 * 1,2,3,4,8,12,16,15原创 2017-05-14 15:09:56 · 553 阅读 · 0 评论 -
[算法-java] 数组转二叉树_(层次遍历)
import java.util.LinkedList;import static java.lang.System.out;/** * 数组转二叉树 * 测试用例: *{8,8,7,9,2,#,#,#,#,4,7},{8,9,2} * Integer.MIN_VALUE代表空节点# * Created by ZeHua on 2017/5/13. */public class Arr原创 2017-05-13 14:22:44 · 968 阅读 · 0 评论 -
【java-算法】【百度真题】度度熊去商场买一顶帽子问题
package baidu;import java.util.Scanner;/** * 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。 * 度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? * 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格 * (价格均是正整数,且小于等于1000) * * 如果存在第三便宜的帽子,请输出原创 2017-05-23 15:01:59 · 592 阅读 · 0 评论 -
【java】方法的重写与变量的隐藏
方法的重写后,调用父类方法要用super关键字显式调用(用this只会调用子类方法),而变量的隐藏后用this和super都行原创 2017-03-11 21:29:59 · 442 阅读 · 0 评论 -
【java】通过java字节码指令分析自增(x++和++x)
i++是先把i的值压入栈中再加1,++i是先加1再把值压入栈中原创 2017-02-28 18:22:42 · 910 阅读 · 0 评论 -
【java】杂记2
1.Arrays.asList() 将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedOperationException异常。 2.ConcurrentHashMap使用segment来分段和管原创 2017-03-04 16:21:17 · 272 阅读 · 0 评论 -
[java]==,equals(),hashCode(),集合
在Java中:==是运算符,用于比较两个变量是否相等。1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。如 String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。2.复合数据类型(类)转载 2017-01-28 13:52:34 · 157 阅读 · 0 评论 -
[Java]静态绑定与动态绑定
程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。如果一个方法不可被继承或者继承后不可被覆盖,那么这个方法就采用的静态绑定。java当中的方法只有final,static,private和构造方法是前期绑定转载 2017-02-01 16:40:56 · 239 阅读 · 0 评论 -
[java-算法-数据结构] 判断栈的弹出顺序是否正确
package stack;import java.util.Hashtable;import java.util.Stack;/** * 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。 * 假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列, * 但4,3,5,1,2就不可能是原创 2017-05-15 12:25:42 · 455 阅读 · 0 评论 -
[java]杂记3
1.String的equal()方法public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString原创 2017-03-07 18:25:36 · 222 阅读 · 0 评论 -
【java-web框架】struts2复习
1.struts2工作流程1、客户端浏览器发出HTTP请求. 2、根据web.xml配置,该请求被FilterDispatcher接收 3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton 4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。 5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果原创 2017-05-25 16:29:20 · 232 阅读 · 0 评论 -
【Java】【容易忽略的知识点】不可变类 (IMMUTABLE CLASS)
一、简单定义不可变对象(Immutable Objects)即对象一旦被创建,它的状态(对象的数据,也即对象属性值)就不能改变,反之即为可变对象(Mutable Objects)。 当满足以下条件时,对象才是不可变的: 1. 对象创建以后其状态就不能修改。 2. 对象的所有域都是final类型。 3. 对象是正确创建的(在对象的创建期间,this引用没有逸出)。 不可变对象的类即为不可变类转载 2017-05-22 15:26:54 · 442 阅读 · 0 评论