编程
文章平均质量分 89
weixin_40562288
这个作者很懒,什么都没留下…
展开
-
java专有名词
java专有名词1. covariant return typingExplanationAbilityExample2. Varargs (variable arguments)ExplanationAbilityExampleExpansion3. nested classExplanation4. free variable(自由变量)ExplanationNoticeExample5. f...原创 2019-06-15 10:31:15 · 660 阅读 · 0 评论 -
spingboot使用quartz
1、pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> <version>2.1.0.RELEASE</version></...原创 2019-06-25 17:10:56 · 73 阅读 · 0 评论 -
zookeeper原理与应用
文章目录概述节点1.四大类型2.区别3.创建规则监听机制应用分布式锁概述特点1.如何避免死锁1.1.死锁是什么1.2.如何避免:使用临时节点2.如何避免惊群效应2.1.什么是惊群效应2.2.为什么要避免惊群效应2.2.1.避免无效系统开销2.2.2.保证每个服务都能获取锁2.3.如何避免惊群效应:使用临时顺序性节点3.实现逻辑概述分布式系统的应用程序注册中心节点1.四大类型持久性节点持...原创 2019-07-13 15:22:11 · 120 阅读 · 0 评论 -
Tomcat 利用 RemoteIpValve 对每个request请求的处理规则
文章目录org.apache.catalina.valves.RemoteIpValve的属性1、 remoteIpHeader2、proxiesHeader3、 internalProxies4、trustedProxiestomcat利用RemoteIpValve对请求头内容的处理内容org.apache.catalina.valves.RemoteIpValve的属性1、 remoteI...原创 2019-07-16 14:36:41 · 6667 阅读 · 0 评论 -
如何使用tomcat 控制项目获取到的request信息
文章目录使用自带的tomcatspringboot 使用内置的tomcat1、配置application.properties 文件内容2、自定义扩展WebServerFactoryCustomizer的定制器3、自定义扩展 WebServerFactory 的组件使用自带的tomcatRemoteIpValve 开发文档//server.xml: Service -> Engin...原创 2019-07-16 15:13:03 · 577 阅读 · 0 评论 -
redis原理与应用
文章目录命令1.插入键值对1.1.set key value1.2.setnx key value2.get key3.getset key newValue4.del key5.exists key6.TTL key7.expire key number8.persist key如果启动redis服务1.启动redis 服务端2.启动redis客户端,需要指定连接的redis服务端提供的ip地址...原创 2019-07-12 16:00:49 · 138 阅读 · 0 评论 -
sprinboot 自动化测试程序
maven 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>2.1.4.RELEASE</version&g...原创 2019-07-29 15:02:16 · 179 阅读 · 0 评论 -
并发编程的线程安全——保证同步访问共享可变数据的一致性
文章目录同步作用(Synchronization)线程作用(Thread)何时需要进行同步同步作用(Synchronization)防止某个对象在被另一个线程修改时被一个线程看到处于不一致状态,确保进入同步方法或块的每个线程都能看到由同一个锁保护的所有先前修改的效果。线程作用(Thread)JSL(Java Language Specification) 保证读取字段时,线程不会看到任意值...原创 2019-06-17 15:11:00 · 1502 阅读 · 0 评论 -
java语法
文章目录1、break loop; continue loop;2、可以利用静态内部类实现测试3、multi-catch工具4、移位符1、break loop; continue loop; //不支持goto loop loopName: for(;;){ innerLoopName: for(;;){ ...原创 2019-06-15 10:44:49 · 175 阅读 · 1 评论 -
编程注意点——java
文章目录1、不可变对象A.优点:B.特性:C.如何保证其非静态对象成员的不可变性:D.创建不可变对象的方式:2、使用访问器访问public修饰的类3、可创建实例的方法都不应该直接或间接的调用可重写方法A.具体是指哪些方法B.原因C.注意4、递归三要素1、不可变对象A.优点:线程安全,不需要同步操作,更安全;设计、实现、使用方式更简单,不易出错。B.特性:不提供可改变状态的方法;类不可...原创 2019-06-15 10:54:46 · 165 阅读 · 1 评论 -
java接口:介绍与分析
java的接口原创 2019-06-15 10:59:19 · 96 阅读 · 0 评论 -
synchronized关键字
synchronized功能synchronized锁的属性1、可重入性2、不可中断性3、同步方法不可继承两种用法:类锁与对象锁1、类锁两种实现形式:2、对象锁两种实现形式:3、测试代码结论:功能可用于修饰方法、代码块,用于防止线程干扰和内存一致性,保证同一时间只有一个线程执行该段代码。synchronized锁的属性1、可重入性自己可以获得自己的内部锁。已经获得对象锁\类锁的线程,可以...原创 2019-06-15 11:21:11 · 87 阅读 · 0 评论 -
并发应用:类成员的初始化懒加载——懒加载VS立即加载
懒加载作为初始化类的成员变量一种优化,应该避免采用。因为任何一种优化也可能降低性能。对于懒加载会增加被懒加载对象的访问成本。 为了避免类的循环初始化,或者当某些类成员初始化很耗时且使用懒加载可以有效的提升性能,此时可以采用懒加载。1、立即加载的格式:使用final修饰private final FieldType field = computeFieldValue();2、懒加载的格式:2...原创 2019-06-15 11:41:21 · 882 阅读 · 0 评论 -
切面编程:spring事务默认由spring aop的代理对象控制
文章目录一、@EnableTransactionManagement1、属性mode作用:2.属性proxyTargetClass作用:3、[扩展:Spring AOP VS. AspectJ]()二、spring中事务配置的方式三、spring中事务创建的方式1、声明式事务:@Transactional2、编程式事务:TransactionTemplate四、实现动态代理的两种方式:1、java...原创 2019-06-21 10:58:59 · 1331 阅读 · 0 评论 -
gradle的使用 —— IDEA
文章目录安装与配置:下载安装包并解压导入一个gradle项目后,使用gradle 前需要先执行几个命令1、gradle wrapper --gradle-version [versionNumber]2、gradle init3、gradle dependencies4、gradle clean buildgradle项目需要包含的两个文件1、settings.gradle2、build.grad...原创 2019-07-27 18:06:58 · 428 阅读 · 0 评论