java
文章平均质量分 89
爱人间
软件工程师,专注于Java后端开发,对微服务架构和云计算有深入研究。在多个大型项目中担任核心开发者,成功实施过高并发、高可用系统的设计与优化。热爱编程,乐于分享,活跃于技术社区。除了java还掌握python和AI技术。期待与更多的同行交流学习,共同进步。
展开
-
多线程使用说明
多线程相关知识1、继承Thread类如果调用run方法,相当于还是只有一条main线程,会把run的线程当成一条普通对象,如下,t会执行完再往下执行,这样t就不是一个线程类,而是一个普通的对象,所以必须调用start方法,才是启动线程。start方法向cpu注册单独的线程,如果调用run方法就不会注册线程,而是当成普通的对象往下跑。不要把主线程任务放在子线程之前,因为他会全部跑完子线程前边的代码,才会执行子线程的内容,所以要将主线程的任务放到子线程之后。2、实现Run原创 2024-05-06 10:00:38 · 152 阅读 · 0 评论 -
Collections的sort排序多个字段
Collections.sort(testList, new Comparator<Test>() { @Override public int compare(Test o1, Test o2) { if (o1.getType().compareTo(o2.getType()) == 0) { return o1.getName().compareTo(o2.getName()); } else { return o2.getT.原创 2020-12-28 15:08:51 · 1150 阅读 · 0 评论 -
第1章 多线程
1.1多线程介绍学习多线程之前,我们先要了解几个关于多线程有关的概念。进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程什么是多线程呢?即就是一个程序...转载 2020-12-18 11:03:54 · 131 阅读 · 0 评论 -
JVM 运行时内存使用情况监控
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是由类加载器一步步解析, 执行与生成与内存区域中的; 并且jvm有自己的垃圾回收器对内存区域管理, 回收; 但是我们已经可以通过一些工具来在程序运行时查看对应的jvm内存使用情况, 帮助更好的分析与优化我们的代码;jps查看系统中有哪些java进程jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息转载 2020-12-18 10:49:42 · 336 阅读 · 0 评论 -
指定cmd窗口或tomcat运行窗口的名称
1、指定cmd运行窗口的名字 1)直接执行命令:title 窗口名称 2)bat文件中直接加上命令:title 窗口名称title test_ v1java -jar -Dfile.encoding=utf-8 test-1.0.1.jarpause注意:bat文件保存的时候指定编码为ANSI,否则中文乱码2、指定tomcat运行窗口的名字 到tomcat的bin文件夹下找到文件 catalina.bat,并打开编辑。 找到下面这一段(我的文件在264行),找到石..原创 2020-12-14 11:34:30 · 2451 阅读 · 1 评论 -
eclipse打包含有第三方库的jar包的导出方案
先在工程目录下建立一个名字为MANIFEST.MF如下图:然后写上一些打包后的配置信息,注意这里最后一行一定要回车留出空行出来,Class-path:后面空一格写上所使用的外部jar位置,关于这个位置一直在困扰我直到后来试了好多次才发现,这个是你的jar打包后的路径,在最后一步在来解释,Main-Class: 后面也要空一格写上主类的绝对名字,最后回车空出一行不写东西,就是第四行空着,不然会提示找不到主类的,这样前期工作就做完了然后导出jar包第一步,右击项目选择export原创 2020-12-09 14:21:12 · 1497 阅读 · 0 评论 -
URL编码表
URL编码表backspace8%A41%a61%§%A7Õ%D5 tab9%B42%b62%«%ABÖ%D6 linefeed%0AC43%c转载 2017-08-01 18:47:45 · 466 阅读 · 0 评论 -
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错
当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:• 运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。在s1=s1+1;中,s1+1因为1是int型的,所以运算时会自动提升表达式的类型,运算的结果是int型,把它赋值给一个 short型变量s1,所以会报错;而在s1+=1;中,由于是s原创 2017-03-24 16:44:25 · 457 阅读 · 0 评论 -
线程池命名问题
ThreadPoolManager.potatoPool.execute(new MyThread());在这种情况下,线程池会给线程自定义命名,如果想改变线程的名称,那么需要在线程中的run方法中给线程setName如下:public class MyThread extends Thread{ public String threadName; public MyThread原创 2016-07-28 20:47:15 · 3990 阅读 · 0 评论 -
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V从原创 2016-04-27 12:00:02 · 4956 阅读 · 0 评论 -
String数组转List,List转String数组
1、List转为String 数组List list = new ArrayList(); list.add("a1"); list.add("a2"); String[] toBeStored = list.toArray(new String[list.size()]); for(String s : toBeStored) { Syste转载 2016-03-31 11:17:41 · 1150 阅读 · 2 评论 -
Java 获取本周,本月的开始和结束日期
转载自:http://blog.csdn.net/kaven_lv/article/details/10053615获取本周的周一和周日的日期: Calendar ca=Calendar.getInstance(); SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd"); int dayOfWeek转载 2017-12-12 14:07:20 · 4904 阅读 · 0 评论 -
java 保留字符串数字的位数,不够前面补0
转载自:https://www.cnblogs.com/gmq-sh/p/5666950.html@Test public void test() { this.printToConsole(autoGenericCode("10011")); this.printToConsole(autoGenericCode("000",3)); }转载 2017-12-04 10:34:10 · 1313 阅读 · 0 评论 -
获取生成和解析二维码的Jar包(QRCode方式)
由于QRCode方式生成二维码和解析二维码不在一个Jar包内,而且获取的网址也不一样,因此我们需要去两个网址获取这两个Jar包。第一步:获取生成二维码的Jar包 首先是获取生成QRCode二维码的Jar包,大家可以访问http://www.swetake.com/qrcode/index-e.html这个网址,如下图所示。我们点击标注的那个链接。 我们会看到如下图所...转载 2018-03-07 11:36:50 · 578 阅读 · 0 评论 -
java实现给指定日期加固定小时、天、月
import java.util.Calendar; import java.util.Date; public class DateUtils { /** * @param args * 设置当前时间加1 */ public Date getNewDate(Date cur) { Calendar c ...原创 2018-03-22 16:30:31 · 14625 阅读 · 0 评论 -
一位Java工程师的阶段性工作总结:代码规范、sql规范与优化、事物
一、技术积累(1)代码规范1.1.1、通常的模块分布:一般如果你要实现一个web应用,你从后台将数据展示到前端页面,在一个比较大的公司,你少不了跟其他项目有交集(你调用他的接口,他依赖你的接口),这样下来,整个公司有很多个模块,怎么做到很好的联系。回到刚刚的模块分布,你的一个web应用,应当需要分成三个模块:core模块、service模块、web模块。web模块就是展示到页面,后台代码而言主要就...转载 2018-07-02 14:36:40 · 338 阅读 · 0 评论 -
java中数字转千分位
BigDecimal a=new BigDecimal("123456789"); DecimalFormat df=new DecimalFormat(",###,##0"); //没有小数 DecimalFormat df=new DecimalFormat(",###,##0.0"); //保留一位小数Dec...转载 2019-03-01 13:59:59 · 6387 阅读 · 0 评论 -
java 解决 java.lang.Double cannot be cast to java.lang.String
从map中获取对象提示错误java.lang.Doublecannot be cast to java.lang.String,这个错误很明显是类型转换错误解决方案:1.直接使用tosting的方式String str = entry.value().toString();2.使用String类的静态方法valueOf()String str = String.valueO...原创 2019-03-04 11:12:54 · 51462 阅读 · 1 评论 -
JAVA如何随机产生min到max范围内的浮点数
importjava.util.Random;import java.text.DecimalFormat;publicclassTest{publicstaticvoidmain(String[]args)throwsException{doublemax=22.0;doublemin=11.0;...原创 2019-04-10 19:07:11 · 3983 阅读 · 0 评论 -
java遍历hashMap、hashSet、Hashtable
一.遍历HashMapMap map = new HashMap(); for(int i=0;i { map.put(i, "123"); }方法一:效率比方法二高for(Entry entry:map.entrySet()) { System.out.println(entry.getKey()+"="+entry.getValue());转载 2015-10-20 14:26:54 · 417 阅读 · 0 评论 -
慎用ArrayList的contains方法,使用HashSet的contains方法代替
在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始以为是需要load的数据比较多的缘故,查了一下数据库有6条左右,但是单独写了一个数据读取的方法,将这6万多条全部读过来,却只需要不到10秒钟,就觉得这里面肯定有问题,于是仔细看其中的逻辑,其中有一段数据去重的逻辑,就是记录中存在某几个字段相同的,就认为是重复数据,就需要将重复数据给过滤掉。这里就用到了一个List来存放这几个字段所组成的主转载 2015-10-20 14:21:15 · 393 阅读 · 0 评论 -
javaweb项目中获取项目名称
request.getServletContext().getContextPath()加入项目名称是test,那么上面的结果就是/test原创 2014-10-10 13:45:49 · 12612 阅读 · 1 评论 -
gc overhead limit exceeded解决方案
1、菜单Run->Run...->Argument->VM Argument原创 2014-11-12 10:18:02 · 3324 阅读 · 0 评论 -
Caused by: java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.getServletContext()L
在做项目的时候,出现Caused by: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()L这个问题,也就是使用request.getServletContext().getRealPath("/")这个报错,感觉好郁闷,看了别人写的文章,可能是tomcat版本过低,我之前用原创 2014-10-09 16:40:51 · 7091 阅读 · 0 评论 -
myeclipse中断点调试
在代码最左端,也就是行号位置处双击,会出现一个实心小圆点,即加入的断点,debug启动程序,就会执行到断点处:按F5是进去方法里面,按F6是一步一步走,按F7是跳出方法里面(按F5后再按F7就跳出来了),按F8是跳过本断点执行所有的代码。原创 2014-10-09 16:24:45 · 2155 阅读 · 0 评论 -
Java中对文件重命名
File file = new File("D:\\aa\a.txt"); file.renameTo(new File("D:\\aa\\b.txt"));原创 2014-10-09 10:22:25 · 1847 阅读 · 0 评论 -
servlet实现文件压缩下载
private ServletConfig config;public void init(ServletConfig config) throws ServletException {this.config = config;}public void doGet(HttpServletRequest request, HttpServletResponse res原创 2014-09-03 13:09:20 · 2075 阅读 · 0 评论 -
Java中将word生成缩略图
解决思路是:1、先将word生成pdf,这个采用openoffice或者jacob2、然后将pdf生成图片具体代码如下:private void officeToPdf(){OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);try {connection.connect();原创 2014-09-24 13:30:08 · 3555 阅读 · 0 评论 -
Java中将上传的文件首页生成缩略图(先将上传的文件转成pdf,然后将pdf转成jpg)
1、首先将上传的非jpg,pdf格式的文件转成pdf,这个是cai原创 2014-08-28 14:30:12 · 2531 阅读 · 1 评论 -
去掉地址栏中的jsessionid
原来我在index.jsp中的编码是结果每次第一次登录都会在地址栏上出现了jsessionid问题这个是由jstl的c:redirect标签生成的,当检查不到cookie的时候自动使用url重写来实现session的管理。将其改为下面这句话就可以轻松去掉jsessionid的问题 response.sendRedirect("search.html?ch转载 2014-10-10 16:10:21 · 2784 阅读 · 0 评论 -
spring学习之@ModelAttribute运用详解
@ModelAttribute使用详解1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 (1)@ModelAttribute注释void返回值的方法转载 2014-11-21 11:50:31 · 531 阅读 · 0 评论 -
Ajax请求访问action判断文件是否存在
action中的写法:public ActionForward fileIsExsit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {String url = request.getParameter("loadFile");File原创 2014-10-10 11:07:49 · 1539 阅读 · 0 评论 -
对于空字符串split()操作获取的数组的长度为1解释
public String[] split(CharSequence input, int limit) { int index = 0; boolean matchLimited = limit > 0; ArrayList matchList = new ArrayList(); Matcher m = m转载 2015-07-02 15:30:56 · 9211 阅读 · 0 评论 -
java 中文乱码的解决办法!兼容谷歌,IE,FIREFOX(火狐)
在获取前台传送过来的中文时,往往会出现乱乱码.而针对不同的浏览器,解决方法不同. [java] view plaincopyprint?String fileName = request.getParameter("fileName"); // 解决中文文件名乱码问题 if (reque转载 2015-05-26 10:44:21 · 1485 阅读 · 0 评论 -
java 日期怎么比较大小
java.util.Date nowdate=new java.util.Date(); String myString = "2008-09-08";SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);Date d = sdf.parse(myString);boolean flag = d.b转载 2015-03-31 14:19:41 · 692 阅读 · 0 评论 -
java如何拷贝文件到另一个目录下
/** * 复制单个文件 * @param oldPath String 原文件路径 如:c:/fqf.txt * @param newPath String 复制后路径 如:f:/fqf.txt * @return boolean */ public void copyFile(String oldPath, String ne转载 2015-03-04 15:26:21 · 3436 阅读 · 0 评论 -
java中Date与String的相互转化
1:大体思路 [html] view plaincopy这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04-14"); 方法2: SimpleDateFo转载 2015-01-08 14:43:41 · 527 阅读 · 0 评论 -
Description Resource Path Location Type Java compiler level does not match the version of the instal
这是由于Java项目的jdk版本和Project Facets下的jdk版本不一致导致的,解决方法如下:右键项目“Properties”,在弹出的“Properties”窗口左侧,单击“Project Facets”,打开“Project Facets”页面。在页面中的“Java”下拉列表中,选择相应版本就OK了原创 2014-12-18 15:58:56 · 871 阅读 · 0 评论 -
Java 判断文件夹、文件是否存在、否则创建文件夹
1、判断文件是否存在,不存在创建文件[java] view plaincopyprint?File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm"); if(!file.exists()) { try {转载 2015-01-27 14:45:16 · 670 阅读 · 0 评论 -
Java中实现文件复制(servlet)
String filePath = request.getParameter("filePath");filePath = request.getServletContext().getRealPath("/") + filePath;String targetPath = request.getParameter("target");File file = new File(file原创 2014-09-04 09:42:57 · 1503 阅读 · 0 评论