- 博客(17)
- 收藏
- 关注
原创 Java字符串转义问题
代码需要根据系统的分隔符进行替换路径,但因为replaceAll中使用转义字符,所以,不能使用str.replaceAll("/","\\");将/替换为\,而应该使用str.replaceAll("/","\\\\");...
2018-06-02 14:45:27
2367
原创 《Spring实战》第七章读书笔记
使用SpringMVC构建Web应用程序浏览器发送请求之后在SpringMVC的第一站是DispatcherServlet,与大多数基于Java的Web框架一样,SpringMVC所有的请求都会通过一个前端控制器Servlet。前端控制器是常用的Web应用模式,在这里一个单实例的Servlet将请求委托给应用程序的其他组件来执行实际的处理。在SpringMVC中,DispatcherServlet...
2018-05-27 20:48:57
370
原创 《Spring实战》第六章读书笔记(事务管理)
事务四要素(ACID):1、原子性(Atomic)事务是由一个或多个活动所组成的一个工作单元。原子性确保事务中的所有操作全部发生或全部不发生。如果所有的活动都成功了,事务也就成功了。如果任意一个活动失败了,整个事务也失败并回滚。2、一致性(Consistent)一旦事务完成(不管事务成功还是失败),系统必须确保它所建模的业务处于一致的状态。现实的数据不应该被损坏。3、隔离性(Isolated)事务...
2018-05-27 19:38:04
412
原创 Java并发学习之安全发布对象
安全发布对象发布对象:使一个对象能被当前范围之外的代码所使用。对象溢出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见。线程不安全的发布对象:package com.concurrency.example.example.publish;import com.concurrency.example.annotations.NotThreadSafe;import lombo...
2018-05-06 11:07:44
1486
原创 Java并发学习之线程安全性
线程安全性定义:当多个线程访问某个类或方法时,不管运行时环境采用何种调度方式或者这些进行如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类或方法是线程安全的。线程安全性体现在三个方面:1、原子性提供了互斥访问,保证同一时刻只能有一个线程来对它进行操作。2、可见性一个线程对主内存的修改可以及时的被其他线程观察到。3、有序性一个线程观察其他线程中的指令...
2018-05-05 20:19:53
225
原创 Java并发学习之项目准备
新建一个Spring Boot项目:添加Web功能:创建完成,测试是否可用:可以使用。创建annotations包,添加用于标注线程状态的四个注解:1、线程安全的注解package com.concurrency.example.annotations;import java.lang.annotation.ElementType;import java.lang.annotation.Re...
2018-05-05 14:17:45
162
原创 Java并发学习之并发基础
并发:多个线程操作相同的资源,保证线程安全,合理使用资源。高并发:高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能同时并行处理很多请求。并发最简单的场景举例(实现一个计数功能):import com.mmall.concurrency.annoations.NotThreadSafe;import lombok.extern...
2018-05-04 22:35:07
156
原创 《Spring实战》第三章读书笔记
最小化Spring XML配置 对于比较大的项目来说,使用<bean>元素定义Bean以及使用<constructor-arg>或<property>元素装配Bean会使得Spring的XML配置文件越来越复杂,但Spring提供了几种技巧,可以减少XML的配置数量。1、自动装配(autowiring)有助于减少甚至消除配置<property>...
2018-05-04 10:51:46
363
《Spring实战》第二章读书笔记
装配Bean定义表演者(Performer)接口,含有一个表演(Perform)方法:package com.springinaction.springidol;public interface Performer{ void perform() throws PerformanceException;}定义一个具体的表演者(杂技师Juggler):package com.springin...
2018-05-04 09:55:12
253
原创 《Spring实战》第一章读书笔记
最近的开发中,感觉对Spring框架的掌握还不够熟练,重新翻出了《Spring实战》这本书,重新学习一遍,以此记录。1.1.2 依赖注入 任何一个有实际意义的应用都是由两个或多个类组成,这些类相互之间进行协作来完成特定的业务逻辑。通常,每个对象负责管理与自己相互协作的对象(即它所依赖的对象)的引用。这将导致高度耦合和难以测试的代码。 因高度耦合而执行特定任务的knight类:p...
2018-05-03 14:42:58
329
原创 Jedis的使用
首先导入Jedis的jar包及其依赖的commons-poor的jar包。直接使用Jedis操作Redis: @Test public void demo1() { //1设置ip地址和端口 Jedis jedis = new Jedis("169.254.157.11", 6379); //2.保存数据 jedis.set("name", "imooc"); ...
2018-05-02 15:12:11
136
原创 Redis入门使用(安装及增删改查)
操作系统:CentOs71、Redis的安装使用wget方式从官网下载Redis:wget http://download.redis.io/releases/redis-4.0.2.tar.gz下载完成后,使用tar命令解压下载文件:tar -xzvf redis-4.0.2.tar.gz切换至程序目录,并执行make命令编译:make执行安装命令:make installmake instal...
2018-05-01 22:06:36
183
原创 解决virtubox无法安装64位系统的问题
今天装centos的时候发现virtualbox中只能安装32位的系统了,查了下资料发现是因为bios里关闭了Intel(R) Virtualization Technology,导致无法使用CPU的虚拟技术,关闭win10快速启动,进入bios开启即可。...
2018-05-01 18:44:00
446
原创 《Go语言编程》第一章读书笔记
1.2语言特性Go语言最主要的特性:1、自动垃圾回收2、更丰富的内置类型3、函数多返回值4、错误处理5、匿名函数和包6、类型和接口7、并发编程8、反射9、语言交互性1.2.1 自动垃圾回收先看下不支持垃圾回收的语言的资源管理方式,以下为一小段C语言代码:void foo(){ char* p = new char[128]; ... // 对p指向的内存块进行赋值 func1(p);...
2018-05-01 16:05:45
154
原创 java native
今天学习《深入理解java虚拟机》一书时,看到书里讲到程序计数器对于普通的java方法和Native方法处理的区别时,因为对Native方法不太了解,遂上网查找资料学习。native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问...
2018-05-01 14:23:54
127
原创 java常量类声明的小技巧
在实际项目开发中,有时需要在常量类中或者在枚举类中声明常用的常量。但是有一些常量使用枚举有点过重,直接使用常量又不太符合java抽象的开发思想。此时可以在其中声明一个接口,将常量放入接口中,使用时直接调用即可。代码如下:public class Const { public static final String CURRENT_USER = "currentUser"; pub...
2018-04-29 14:21:57
2293
转载 java中transient关键字的使用
看LinkedList源码时看到使用了transient原文地址如下:程序媛想事儿(@敏敏Alexia)1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开...
2018-04-16 15:12:59
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人