![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 58
程序员老牛了laoliu
这个作者很懒,什么都没留下…
展开
-
java部分面试题
1、runnable和callable的区别相同点:1、两者都是接口2、两者都需要Thread.start();来启动线程不同点:1、runnable重写的是run方法,callable重写的是call方法2、runnable不能获取返回值,而callble可以通过futuretask.get()来获取返回值,不过执行get的时候主线程会阻塞,等待该线程返回3、runnable不能抛出异常,而callable可以2、要在一个大到内存无法装下的文件中,找到出现次数最多的前.原创 2021-03-28 21:57:48 · 153 阅读 · 0 评论 -
String中的replace和replaceAll的区别
1、replace 和replaceall的区别replace有两个方法,可以替换字符(char)和字符串。 public String replace(char oldChar, char newChar) public String replace(CharSequence target, CharSequence replacement)replaceAll替换的是正则表达式或者字符串 public String replaceA...原创 2021-03-28 13:36:43 · 3110 阅读 · 0 评论 -
写一点面试题,路上看着背!(一)
Java锁:公平锁:从名词上来讲就是公平,大家排好队一个一个来,先到的先执行。非公平锁:顾名思义就是,不公平竞争,多个线程来抢CPU资源,谁抢到谁执行。Java的实现方式:ReentrantLock,使用带Boolean参数的构造方法,true表示公平锁,false表示非公平锁,如下图。可重入锁:字面意思来看,就是加完锁以后还可以再加锁。Java中的ReentrantLock和synchronized也都实现了可重入锁。读锁:又称为共享锁(S锁):一个事务对A加了S锁,其它事务只能对原创 2021-03-23 22:04:09 · 143 阅读 · 0 评论 -
进度条实现与后端进行交互,实时更新进度条(JAVA web项目实现)
实现思路网页进度条更新有两种方式1、轮询请求服务端、返回进度2、服务端实时推送进度数据给客户端 轮询方式的实现方法,服务端在执行的过程中将进度数据保存再session中,客户端调用的时候从session中取出来,然后更新进度条的数据,从而改变进度条。 服务端实时推送,客户端请求执行任务的时候连接到websocket,服务端在执行的过程中将进度数据通过websocket的方式实时推送到客户端,客户端拿到数据后改变进度条轮询请求方式后端实现代码 ...原创 2020-06-29 17:17:53 · 22383 阅读 · 1 评论 -
Java中ThreadLocal的使用方法
ThreadLocal是提供线程局部变量。这些变量与其正常的对应方式不同,因为访问一个的每个线程(通过其get或set方法)都有自己独立初始化的变量副本。ThreadLocal实例通常是希望将状态与线程关联的类中的私有静态字段常用方法方法名 作用 set(T value) 将当前线程的此线程局部变量的副本设置为指定的值 T get() 返回当前线程的此线程局部变量的副本中的值 remove() 删除此线程局部变量的当前线程的值。 下面通过创建实例来看一下效..原创 2020-05-14 09:42:52 · 777 阅读 · 0 评论 -
java使用word模板导出word文件(使用xdocreport的方式)
依赖的jar包<dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>xdocreport</artifactId> <version>2.0.2</version> </dependenc...原创 2020-04-17 15:25:07 · 4013 阅读 · 5 评论 -
JDK8的HashMap源码阅读(红黑树除外)
HashMap底层是个Node[]成员变量: DEFAULT_INITIAL_CAPACITY:默认初始化默认长度 1<<4 1左移四位也就是16 MAXIMUM_CAPACITY:最大长度 1<<30 1左移30位 也就是2的30次方 也就是1073741824(这个数字不好记,记得是2的30次方就行了,大概是10亿多)...原创 2019-10-24 14:25:53 · 164 阅读 · 0 评论 -
深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@R转载 2017-12-25 14:25:48 · 275 阅读 · 0 评论 -
springwebsocket部署的一次坑
在本地开发环境下websocket运行正常,结果部署到服务器,websocket一直异常,最后发现tomcat版本问题,是tomcat版本问题!是tomcat版本问题!是tomcat版本问题!重要事情事说三遍解决方案:用tomcat 7.0.77及以上的版本即可解决问题。是tomcat版本问题!是tomcat版本问题!原创 2017-12-20 19:48:31 · 673 阅读 · 0 评论 -
为什么下一个5年java后台开发你该选择Spring Boot?
我们先来看看以前我们是怎么写Spring的以前的Spring整合复杂相信大家学SSM(Spring+Spring MVC+MyBatis)结构的时候, 最痛苦的莫过于整合了.. 既然要整合三者, 那么需要做哪些配置呢?选择各种依赖的版本,spring核心的lib: spring-core, spring-context, spring-beans, spring转载 2017-12-04 09:21:51 · 534 阅读 · 0 评论 -
java web项目生成二维码思想
本文使用google的zxing生成前期准备引入jar包 com.google.zxing core 3.3.1 com.google.zxing javase 3.3.1编写工具类/** * QrCodeUtil.java * com.juyo.visa.common.util * Copyright (c)原创 2017-12-12 11:44:17 · 2041 阅读 · 2 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一转载 2017-11-09 11:47:35 · 177 阅读 · 0 评论 -
HttpClient 获取 Cookie 的一次踩坑实录
在使用HttpClient进行抓取一些网页的时候,经常会保留从服务器端发回的Cookie信息,以便发起其他需要这些Cookie的请求。大多数情况下,我们使用内置的cookie策略,便能够方便直接地获取这些cookie。下面的一小段代码,就是访问http://www.baidu.com,并获取对应的cookie:转载 2017-11-17 13:52:50 · 6268 阅读 · 1 评论 -
jvm调优总结
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3转载 2017-11-30 14:59:13 · 195 阅读 · 0 评论 -
springMVC解决跨域jsonp乱码问题的三种方法
1、简单而粗暴的response.setContentType("/application/json");response.setCharacterEncoding("utf-8");2、springmvc低版本在@RequestMapping 上添加 produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8"3原创 2017-11-20 22:18:39 · 1075 阅读 · 0 评论 -
Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。 转载请注明地址 http://www转载 2017-11-21 12:15:09 · 212 阅读 · 0 评论 -
java导出简单的word模板
java导出简单的word模板public ByteArrayOutputStream toWordStream(InputStream inputStream, Map map) { try { // 1) Load ODT file and set Velocity template engine and cache it to the registry IXDocRepor原创 2017-11-22 15:41:36 · 454 阅读 · 0 评论 -
java将文件打包为zip
由于某些业务需要,某个下载按钮需要下载多个文件,并打包为zip,本人只好查各种资料进行实现//打包成为ZIP文件public static ByteArrayOutputStream mergeToZip(Map fileMap) { //合并输出为一个压缩包 ByteArrayOutputStream out = new ByteArrayOutputStream(); try {原创 2017-11-22 16:09:25 · 1844 阅读 · 0 评论 -
Java开发中23种设计模式详解
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2017-08-30 17:12:16 · 349 阅读 · 0 评论