- 博客(54)
- 收藏
- 关注
原创 java面试题
java面试必看redisredis使用场景?redis单线程还是多线程?遇到过缓存穿透吗?遇到过缓存击穿吗?如何避免缓存雪崩?缓存回收策略?如何进行缓存预热?数据库与缓存不一致?redis主从不一致问题?redis持久化原理redis扛不住了,万级流量达到DB上为什么使用setnX?分布式锁?redis存储redisredis使用场景?string、list(队列)、hash(hmset)、set(统计网站访问ip)、zset(top10)缓存、服务无状态化、锁(redison)及时性、数据一致
2021-07-05 15:59:08
390
转载 java面试题上
2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博客。在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补...
2018-09-06 21:20:52
703
原创 根据进程查看端口
有时候需要查看一个进程占用了那个端口,但是只知道进程大致的名称,比如要查看hadoop的namenode在哪个端口上运行,以便在eclipse中连接。一种方法如下,可能比较搓,请大牛指教!首先用ps命令查看进程的id: $ ps -ef | grep Name其中每一行(很长的时候会占用若干行)的第二个字段就是进程的id。 当然,对于在java虚拟机中运行的进程,比如h...
2018-09-01 19:47:49
1813
原创 面试题
转史上最全Java面试题(带全部答案)2018年05月27日 22:57:06阅读数:11469今天要谈的主题是关于求职,求职是在每个技术人员的生涯中都要经历多次。对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦。在跳槽季来临之前,特地做这个系列的文章,一方面帮助自己巩固下基础,另一方面也希望帮助想要换工作的朋友。 相...
2018-08-21 22:23:30
1255
原创 分布式事务解决方案
前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在...
2018-08-13 18:32:06
319
原创 volatile是非原子性 AtomicInteger原子性
import java.util.concurrent.atomic.AtomicInteger;/* * volatile不是原子性的,它只保证变量在多线程中可见,操作时并不是线程安全的 * AtomicInteger 是原子性的 */public class sub extends Thread{ public static volatile int a; priv...
2018-08-05 21:51:30
472
原创 mysql acid
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一...
2018-08-05 17:43:11
9250
原创 spring两种请求异步调用扩大吞吐量
方法一:返回DeferredResult方法二:返回Callable//将请求需要执行的业务放入队列package com.atguigu.service;import java.util.Queue;import java.util.concurrent.ConcurrentLinkedQueue;import org.springframework.web.context...
2018-08-01 22:42:37
2172
原创 spring注解驱动执行流程
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents=...
2018-08-01 16:31:25
1806
原创 spring整合aspects做aop演示
第一步:接入spring 和aspects依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version&g...
2018-07-31 17:00:02
3143
原创 SpringBoot根据注解@Conditional判断注入那个对象 这里以判断操作系统为例
/* * 需要被注入对象的接口 */public interface User { public void getOsName();} /* * 被注入对象 */public class WindowUser implements User{ public void getOsName() { System.out.println("windo...
2018-07-30 21:57:10
3395
原创 could not get the value for parameter encoding forplugin execution default resources 处理
因为 我不是引入默认的路径是我重新 在别的盘新建了一个文件夹。但是其他配置都修改好 应该不会出这个问题,查了很久才找到这个解决办法。 删除jar 包之后 其实很简单 在你需要跟新的项目右键 找到maven --》 然后 update projuect... 然后 点击force update of snapshots/releases 勾选上即可等待片刻 你得项目就回自动编译正...
2018-07-30 18:19:13
1622
1
原创 java动态代理实现与原理详细分析
cglib代理与JDK中的代理比较: JDK动态代理: 只能代理实现了接口的类 没有实现接口的类不能实现JDK动态代理。 Cglib代理: 针对类来实现代理,对指定目标 产生一个子类 通过方法拦截技术拦截所有父类方法的调用。 我们要使用cglib代理必须引入 cglib的jar包spring中使用aspat 做面向切面编程都是依赖以上两种动态代理模式实现的jdk动态代...
2018-07-29 20:07:36
374
原创 eclipse中使用Lombok
eclipse中使用Lombokwindows环境 1.下载lombok.jar包https://projectlombok.org/download.html 2lombok.jar 拷贝到eclipse.ini同等目录下面 springboot整合lombok新建logback-spring.xml文件<?xml version="1.0" encodin...
2018-07-25 12:13:39
921
原创 eclipse配置lombak使用@Slf4j
使用@Slf4j代替LoggerFactory创建logger对象windows环境1.下载lombok.jar包https://projectlombok.org/download.html2 lombok.jar 拷贝到eclipse.ini同等目录下面3 配置文件eclipse.ini中是否 添加了如下内容: -javaagent:lombok.ja...
2018-07-25 10:56:12
3609
原创 eclipse快捷键
debug快捷键 1.表示当前实现继续运行直到下一个断点,快捷键为F8。2.表示打断整个进程3.表示进入当前方法,快捷键为F5。4.表示运行下一行代码,快捷键为F6。5.表示退出当前方法,返回到调用层,快捷键为F7。6.表示当前线程的堆栈,从中可以看出在运行哪些代码,并且整个调用过程,以及代码行号...
2018-07-25 10:47:38
208
原创 cmd window关闭端口程序
window关闭端口程序1. netstat -nao | findstr “8080” 查询8080端口 2. taskkill /pid 3017 /F 关闭pid为3017的进程
2018-07-25 10:45:34
4628
原创 RDB与AOF的选择
AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据 换句话说,就是Redis重启就会根据日志内容从头到尾执行一次来完成数据的恢复工作。Tip: 一.RDB与AOF同时开启 默认先加载AOF的配置文件 二.相同数据集,AOF文件要远大于RDB文件,恢复速度慢于RDB 三.A...
2018-07-05 14:45:51
928
原创 mysql优化查询效率方法总结(重)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from ...
2018-06-30 17:58:37
268
原创 mysql优化之分表
一个数据表里边存储的记录信息太多了,记录的条数达到1-2亿条信息。这是该数据表的活性就大大降低,数据表的运行速度就比较慢、效率低下,影响mysql数据库的整体性能。现在设置一个水平分割,把许多的记录信息分别存储到不同的数据表里边,这样每个表存储的记录就比较少,该表的活性大大提高。 分表设计的两种模式:① 逻辑方式分表mysql数据库本身就有分表技术,该方式的分表可以节省java/php等语言的逻辑...
2018-06-30 17:40:35
308
原创 mysql中myisam和innodb区别
存储引擎保存数据的格式(技术),不同格式体现特性不一样myisam 结构、数据、索引 文件单独存储 不支持事务 不支持外键 锁整张表 DQL效率高innodb 结构有单独文件,数据和索引合并到一个文件中 并发性,高,锁行 DML效率高 支持事物 ...
2018-06-30 16:32:58
350
原创 mysql索引优化
myisam(锁表,不支持事物)引擎下创建索引几种方式方法一:创建表时创建索引方式二:使用使用alter给列添加索引 删除索引:
2018-06-30 15:51:47
159
原创 本机配置https
1、进入到jdk下的bin目录:cd %JAVA_HOME%/bin 2:再运行:keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\test\tomcat.keystore -validity 36500 (D盘要先建好test文件夹,否则会报不存在。参数简要说明:“D:\home\tomcat.keystore”含义是将证
2018-01-31 09:24:00
8530
原创 redis集群原理
36套java进阶高级架构师视频+38套大数据视频 保证全是硬货需要的+微信:du13797566440redis集群原理 redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。 官方的一个简单测试: 测试完成了50个并发执行100000个请求。 设置和获取的值是一个256字节字符串。 ...
2018-01-19 09:09:34
639
原创 ajax发送json字符串
/** * ajax 传入json 字符串类型spring后台可以使用requestBody接收 * JSON.stringify(data) 将js对象转json字符串, 不然后台可能不能直接接收js对象 */function JQAjaxContentTypeLoading(url, data, successfn ) { var ajaxSettings = { url : url,
2018-01-18 08:56:12
2610
原创 spring中使用servlet拦截器实现防止sql注入
/** * 描述:防止sql注入 * 作者: dlj * 时间: 2018年1月16日 上午9:37:04 */public class AntiSqlInjectionfilter implements Filter {private Logger logger = LoggerFactory.getLogger(AntiSqlInjectionfilter.class)
2018-01-16 09:39:55
2470
1
原创 springmvc配置统一异常处理器+自定义异常
创建统一返回的json对象public class AjaxResponse{/*** */private static final long serialVersionUID = 1L;private int code; /** 状态对应的描述 **/private String msg;/** 扩展字段 **/private String
2018-01-16 09:06:36
2508
原创 centos克隆+固定ip
36套java进阶高级架构师视频+38套大数据视频 保证全是硬货需要的+微信:du13797566440配置文件方式配置网络vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.XNETMA...
2018-01-11 20:44:12
223
原创 创建用户组并授权某文件权限
useradd u1 添加用户1useradd u2 添加用户2groupadd 创建名为q1的组gpasswd -a u1 q1 给用户u1添加到q1中gpasswd -a u2 q1 给用户u2添加到q1中grep g1 /etc/group (或者 cat etc/group |grep g1)mkdir -p /test/software 创建目
2018-01-10 20:12:29
1349
原创 sping解决post和get中文乱码(get请求有坑)
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题之前项目中的web.xml中的编码设置:filter> filter-name>CharacterEncodingfilter-name> filter-class>org.springframework.web.filter.CharacterEncodingFil
2018-01-08 11:06:26
1649
原创 netty使用jboss的Marshalling编解码(对象序列化)
首选映入netty-all-5.0.0.Alpha2.jar jboss-marshalling-serial-1.3.0.CR9.jar jboss-marshalling-1.3.0.CR9.jar 包/** * 客户端 */public class Client {//内部类的懒加载private static class SingletonHolder {
2018-01-04 22:47:02
1216
原创 maven打可执行jar包
${project.build.directory}/classessrc/main/resourcestrue**/*.xml**/*.properties${project.build.directory}/classes/META-INFsrc/main/resourcestruespring-context.xml -->
2018-01-02 21:38:51
320
原创 网络编程之基于nio的Netty框架Demo
首选引入netty jar包/** * @author dlj2018年1月2日 * netty服务端,实现异步非阻塞处理消息 */public class Server {public static void main(String[] args) throws Exception {//1 第一个线程组 是用于接收Client端连接的EventLoopG
2018-01-02 18:01:09
834
转载 socket io网络编程demo
/** *服务端代码 */public class Server {final static int PROT = 8765;public static void main(String[] args) {ServerSocket server = null;try {server = new ServerSocket(PROT);System.ou
2018-01-01 21:24:21
407
原创 多线程之读写锁ReentrantReadWriteLock
/**重入锁ReentrantReadWriteLock(软穿特lock) * 口诀:读读共享(不加锁),读写互斥(加锁),写写互斥 (加锁) */public class worker {ReentrantReadWriteLock lock=new ReentrantReadWriteLock();//创建锁ReadLock readlock= lock.readLoc
2017-12-30 15:57:50
208
原创 多线程之可重入锁ReentrantLock
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;/**重入锁Reentran
2017-12-30 15:40:01
300
原创 多线程semaphore限流
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/**java Semaphore限流 */public class worker {public static vo
2017-12-30 13:57:32
1461
原创 jdk中future模式
36套java进阶高级架构师视频+38套大数据视频 保证全是硬货需要的+微信:du13797566440 import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;im...
2017-12-30 13:20:06
505
原创 concurrent包下的CountDownLatch用法
36套java进阶高级架构师视频+38套大数据视频 保证全是硬货需要的+微信:du13797566440/** * worker.java * 2017年12月27日 * Administrator */package cn.itcast.dao;import java.util.concurrent.CountDownLatch;import java.util.con...
2017-12-30 12:17:59
506
原创 concurrent包下的CycicBarrier用法
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * Cycli
2017-12-30 12:01:45
669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人