java
踏浪行
这个作者很懒,什么都没留下…
展开
-
JDBC
jdbc 是什么java DATEbase connectivity java 数据库连接 java语言操作数据库jdbc 本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商实现这套接口,提供数据库驱动的jar包。我们可以使用这套接口(jdbc)编程,真正执行的代码是驱动jar包中的实现类。快速实现1 导入驱动jar包2 注册驱动 (...原创 2019-10-31 11:54:13 · 106 阅读 · 0 评论 -
java垃圾回收GC
java 的垃圾回收机制GC 发生在堆GC(分代收集算法)分类1 MINOR GC次数上频繁收集Young区发生在年轻代中 使用的是复制算法复制算法优点:效率高,没有内存碎片缺点:需要额外的内存空间2 FUll GC次数上较少收集Old区发生在老年代中标记清除和标记压缩混合使用标记清除优点:不需要额外的空间缺点:两次扫描耗时严重产生内存碎片标记压缩优点...原创 2019-10-23 16:56:39 · 126 阅读 · 0 评论 -
hashCode和equals
hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。因为重写的equal()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高,那么hashCode()既然效率这么高为什么还要equal()呢? 因为hashCode()并不是完全可靠,有时候不...原创 2019-03-05 10:02:02 · 72 阅读 · 0 评论 -
HashMap了解
在平常的开发当中,HashMap是我最常用的Map类(没有之一),它支持null键和null值,是绝大部分利用键值对存取场景的首选。需要切记的一点是——HashMap不是线程安全的数据结构,所以不要在多线程场景中应用它。通常情况下,我们使用Map的主要目的是用来放入(put)、访问(get)或者删除(remove),而对顺序没有特别的要求——HashMap在这种情况下就是最好的选择。01、Ha...转载 2019-03-05 13:55:49 · 112 阅读 · 0 评论 -
线程安全
线程安全:也就是我们要确保在多条线程访问的时候,我们的程序还能按照我们预期的行为去执行Java 实现线程安全的三种方式同步代码块同步方法Lock锁机制...原创 2019-03-15 13:34:32 · 78 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩、热点数据失效
缓存穿透什么是缓存穿透正常情况下,我们去查询数据都是存在。那么请求去查询一条压根儿数据库中根本就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去。这种查询不存在数据的现象我们称为缓存穿透穿透带来的问题试想一下,如果有黑客会对你的系统进行攻击,拿一个不存在的id 去查询数据,会产生大量的请求到数据库去查询。可能会导致你的数据库由于压力过大而宕掉解决办法...转载 2019-04-25 10:08:03 · 183 阅读 · 0 评论 -
stream 用法(list转map)(string转list)(list转map)
List 转化为MapMap<String, Object> totalMap = ListMap.stream().collect(Collectors.toMap(x -> x.get(key).toString(),x -> Integer.valueOf(x.get(Key).toString())));key 为map中的 key值 ,上述表达式的意思是 ...原创 2019-04-29 20:27:06 · 36671 阅读 · 0 评论 -
@Valid校验
@Valid在对象后加 BindingResult bindingResult是否校验失败if (bindingResult.hasErrors()) {//校验的错误信息String errMsg = bindingResult.getFieldError().getDefaultMessage();}校验的注释正则表达式和flag指定自定义的email格式限制说明...原创 2019-05-14 15:49:10 · 5597 阅读 · 0 评论 -
项目关干净
跟进端口号查出进程netstat -aon|findstr 8080杀死进程taskkill -f -pid 11476原创 2019-05-07 17:09:59 · 120 阅读 · 0 评论 -
excel导出 减少内存损耗
EasyExcel https://mp.weixin.qq.com/s/TZYxyzt_FpXcWuJpxz_IZQ转载 2019-05-18 10:01:42 · 628 阅读 · 0 评论 -
ThreadPoolExecutor参数工作方式
corePoolSize 线程池中核心线程数的最大值maximumPoolSize 线程池中能拥有最多线程数keepAliveTime 表示空闲线程的存活时间TimeUnitunit 表示keepAliveTime的单位workQueue 用于缓存任务的阻塞队列ArrayBlockingQueue:是一个基于数组结构的有界阻塞队列,此队列按 FIFO(先进先出)原则对元...原创 2019-06-03 20:54:32 · 787 阅读 · 0 评论 -
spring boot mybatis sql打印日志
spring boot mybatis sql打印到日志调试时不清楚sql语句是否出现问题,把执行的sql打印到日志中方便调试在application.properties文件中添加:logging.level.com.zhangshitong.springbootModel.demo.mapper=DEBUG红色部分替换成自己项目XXXMapper.java(Dao)层所在的位置(包名)...原创 2019-06-25 15:36:58 · 1206 阅读 · 0 评论 -
spring boot mybatis sql打印到日志(控制台)
spring boot mybatis sql打印到日志(控制台)在application.properties文件中添加:logging.level.(Maper文件路径) =DEBUG红色部分替换成自己项目XXXMapper.java(Dao)层所在的位置(包名)在日志中可以看到执行的sql...原创 2019-07-09 09:39:44 · 1266 阅读 · 0 评论 -
反向代理
反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。比如我们在租房子的过程中,除了有些房源需要通过中介以外,还有一些是可以直接通过房东来租的。用户直接找到房东租房的这种情况就是我们不使用代理直接访问国内的网站的情...转载 2019-02-27 17:18:39 · 138 阅读 · 0 评论 -
guava中Table、HashBasedTable、TreeBasedTable
Table当我们需要多个索引的数据结构时,大多数时候我们会选择Map<String,Map<String,Object>>Map<String,Map<String,Object>>这种Map套Map这种很繁琐的数据结构;最近在学习Guava的时候发现已经提供的有Table集合类型,来支持这种使用场景,Table支持了row和cloumn这种二维的...转载 2019-02-22 21:21:30 · 1010 阅读 · 0 评论 -
多线程时使用的计数器AtomicInteger
为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题,这个时候计数器就要使用AtomicInteger来统计参考: https://blog.csdn.net/fanrenxiang/article...转载 2019-02-22 21:18:01 · 1430 阅读 · 0 评论 -
常用guava
Guava Google Guava 是 Google 为 Java 1.6 编写的核心库,这个库简化了你的代码,使它易写、易读、易于维护。它能提高你的 工作效率,让你从大量重复的底层代码中脱身。1 Guava String转List,mapList carIdList = Splitter.on(char).omitEmptyStrings().trimResults().spl...原创 2018-11-03 15:28:04 · 214 阅读 · 0 评论 -
jsoup
HTTPclient + jsoup 使用模板http://blog.csdn.net/axi295309066/article/details/62236178?locationNum=1&fps=1Jsoup使用文档http://www.open-open.com/jsoup/得到该元素的下一个兄弟元素Element childBrands = brand.nextEleme...转载 2018-11-14 15:51:36 · 170 阅读 · 1 评论 -
练习设计模式
阿斯顿撒多转载 2018-11-14 20:42:35 · 922 阅读 · 0 评论 -
@Service("XXXX"),@Component("XXXX")中括号XXX的作用
@Service(“XXXX”),@Component(“XXXX”)中括号XXX的作用括号中的XXX就是这个类的全限定名,表示给当前类命名一个别名,方便注入到其他需要用到的类中;不加的话,默认别名就是当前类名,但是首字母小写...原创 2018-11-22 10:12:23 · 3184 阅读 · 1 评论 -
list
打乱list顺序Collections.shuffle(saleCarClueList);llist 根据 索引截取List.subList(satrtIndex, endIndex);索引前闭后开原创 2018-11-24 16:00:30 · 64 阅读 · 0 评论 -
Guava中的特殊map BiMap
BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。 即可以根据key得到value,也可以根据value得到key.但是要经过inverse方法调转key和value,而且value重复了则会抛出错误: java.lang.IllegalArgumentExceptioninverse方法会返回一个反转的BiMap,但是注意这个反转的map不是新的map对象...转载 2018-11-30 09:53:47 · 2448 阅读 · 0 评论 -
校验bindingResult
校验bindingResult@NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上https://www.cnblogs.com/softidea/p/6044123.html转载 2019-01-28 10:21:43 · 652 阅读 · 0 评论 -
全角半角的转换
全角半角的转换全角空格为12288,半角空格为32其他字符半角(33-126)与 全角(65281-65374)的对应关系是:均相差65248public static String conversionHalfAngle(String input) { logger.info("传入的字符串:{}",input); char c[] = input.to...转载 2019-01-28 10:30:00 · 325 阅读 · 0 评论 -
多线程学习
多线程核心线程size先是5,等队列满200后,核心线程扩大到10,队列数量变为195CountDownLatch计数器CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。每个线程调用 CountDownLatch....原创 2019-02-21 14:29:36 · 103 阅读 · 0 评论 -
Java的运行环境
关于jdk的详细介绍JDK是Java Development Kit的缩写,即Java开发工具集。JDK是整个Java的核心,包括了Java运行环境(JRE)、Java开发工具和Java基础类库。JRE是Java Runtime Environment的缩写,即Java运行时环境。Java程序运行时必需要JRE的支持。设置环境变量环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,...原创 2019-02-21 21:26:02 · 3545 阅读 · 0 评论 -
Java的运行环境
关于jdk的详细介绍JDK是Java Development Kit的缩写,即Java开发工具集。JDK是整个Java的核心,包括了Java运行环境(JRE)、Java开发工具和Java基础类库。JRE是Java Runtime Environment的缩写,即Java运行时环境。Java程序运行时必需要JRE的支持。设置环境变量环境变量是指在操作系统中用来指定操作系统运行环境的一些参数,...原创 2019-02-22 10:07:50 · 151 阅读 · 0 评论 -
为什么使用spring
1 依赖注入(DI)(AOC)通常,我们开发的java应用都是由多个类组成,它们之间相互协作来完成特定的业务逻辑。每个对象之间相互联系,导致高度耦合的代码。1.方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理)2 面向切面编程(AOP)AOP:允许你把遍布应用各处的功能分离出来形成可重用的组件。比方说,系统中的日志、事务管理。安全服...原创 2019-02-22 11:07:24 · 390 阅读 · 0 评论 -
HttpClient的属性设置
HttpClient的属性设置重定向开关的方法.setRedirectsEnabled(isRedirect)循环重定向的开关.setCircularRedirectsAllowed(isRedirect);允许重定向的最大次数.setMaxRedirects(3)AsyncHttpClient 中的重定向和 setEnableRedirects 方法异常解决https://blo...原创 2018-10-19 20:57:22 · 1373 阅读 · 0 评论