
java
小白的码BUG之路
如名
展开
-
JAVA -- http工具类
http请求调用工具类原创 2023-02-16 19:02:38 · 1010 阅读 · 1 评论 -
JAVA -- 导出动态excel表,并且表头是组合表头
组合表头,动态表头,使用EasyExcel实现原创 2022-12-22 11:30:53 · 2778 阅读 · 3 评论 -
JAVA -- 把一个大的sql文件分割成多个小sql文件
简单的io流分割文件工具方法原创 2022-12-06 11:00:01 · 3769 阅读 · 0 评论 -
JAVA -- 下载配置JDK1.8
操作: 官网下载JDK1.8 网址:Java SE Development Kit 8 - Downloads 找到Java SE Development Kit 8u301 ,下面是jdk的下载列表 拖到最下面,看到有个window 64位的jdk 点击下载 安装IDK 打开安装包,下载JDK1.8 可更改下载路径,我一般默认使用推荐的路径(但是这个路径有...原创 2021-09-13 14:57:46 · 1013 阅读 · 1 评论 -
JAVA -- 电脑设置了JDK版本为1.8,但是java -version 还是现实JDK是1.6
场景: 导入一个项目,环境需要时JDK1.8,电脑的环境变量JAVA_HOME啥的已经改成了1.8,但是项目还是跑不起来,后面控制台执行 java -version 命令,发现JDK还是1.6原因: 虽然环境变量已经修改,但是目录C:\Windows\System32 下的java.exe,javaw.exe,javaws.exe 还是之前的,所以执行 java -version 命令才会显示jdk是旧配置解决: 删除上述3个文件,再启动...原创 2021-08-24 14:57:53 · 2854 阅读 · 0 评论 -
JAVA -- 服务器调用linux的命令
首先连接虚拟机:创建一个目录,作为代码执行路径,我的是/home/diao/testDemo创建目录demo,新增文件Test.java,代码内容如下,可以编辑好后用上述工具直接放到/home/diao/testDemo 目录下:package demo; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.nio.ch..原创 2021-08-23 00:29:59 · 308 阅读 · 0 评论 -
JAVA -- 服务器调用cmd的命令
有时候,我们需要java代码中调用cmd的命令,今天了解和测试了一下,代码如下:Test.javapackage demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.nio.charset.Charset;public class Test { public static void main(S...原创 2021-08-20 00:03:37 · 515 阅读 · 0 评论 -
JAVA -- 线程池ThreadPoolExecutor
线程池的好处: 其实每个线程都是为了完成某个业务功能任务,假设某个功能A任务,需要执行10000次,那么如果正常操作的话可能要创建10000次线程,每个线程去完成A任务,完成后这10000个线程再回收销毁。想想就知道这个有多浪费资源,线程是宝贵的资源,频繁的创建和销毁消耗的资源是很大的,而且很有可能创建和销毁资源的时间会超过业务执行的时间 如过使用线程池,假设这线程池的大小为10个线程,那么这10个线程在创建后就会不断的去执行那10000个A任务,执行一个后不会销毁而是会...原创 2021-08-19 00:27:12 · 399 阅读 · 0 评论 -
JAVA -- Restful风格
java程序在设计API的时候,如果是以前旧习惯,以用户的增删改查为例,对应的URL可能如下:查询 | 项目地址:端口号/getUser 添加 | 项目地址:端口号/addUser 修改 | 项目地址:端口号/updateUser?id=xxx&参数1=value1&参数2=value2参数n=valuen删除 | 项目地址:端口号/deleteUser?id=xxx 一个用户模块,就使用了4个u...原创 2021-08-18 00:12:39 · 298 阅读 · 0 评论 -
JAVA--多路复用实现多用户的一对一聊天功能-实现
需求: 实现一个服务器,可多用户登录,用户可知道其他在线用户并与之一对一聊天,也可结束当前聊天和别的用户聊天。实现: 1:使用ServerSocketChannel多路复用来做服务器,客户端连接注册时,用<用户ID,socketChannel>的键值对集合保存客户端的连接socketChannel对象。 2:客户端可通过查询服务端的键值对集合来获取所有在线用户信息。 3:客户端A选定用户B进行一对一聊天,发送聊天信息(聊天信...原创 2021-07-25 16:16:21 · 820 阅读 · 0 评论 -
JAVA--多路复用实现多用户的一对一聊天功能
需求: 实现一个服务器,可多用户登录,用户可知道其他在线用户并与之一对一聊天,也可结束当前聊天和别的用户聊天。实现: 1:使用ServerSocketChannel多路复用来做服务器,客户端连接注册时,用<用户ID,socketChannel>的键值对集合保存客户端的连接socketChannel对象。 2:客户端可通过查询服务端的键值对集合来获取所有在线用户信息。 3:客户端A选定用户B进行一对一聊天,发送聊天信息(聊...原创 2021-07-25 01:05:03 · 313 阅读 · 0 评论 -
JAVA--多路复用ServerSocketChannel的简单客户端服务端通信例子
多路复用不多介绍了,大家有需要可查看其它大佬专业的解释,这边我用的选择器是Selector,下面是服务端和客户端代码服务端:package com.dgh;import java.io.IOException;import java.net.InetSocketAddress;import java.net.Socket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.ni原创 2021-07-24 21:56:31 · 1447 阅读 · 2 评论 -
数据库----悲观锁和乐观锁版本号机制
悲观锁 就像名字一样,悲观锁就是对数据的操作保持着悲观的态度,用最保守的方式来保证安全。为了保证数据操作的安全,先把数据锁定起来,成功后再把锁放开。悲观锁的实现,往往要依靠数据库提供的锁机制。基本上悲观锁就是数据库层面上的数据安全操作,最常见的就是利用 for update 。 例如Mysql的行级锁和表级锁 在使用 select…for update 的时候会把数据给锁住 ,但是锁可能是行级锁也可能是表级锁,语句使用不当可能会导致性能的巨大差异。 使用for update , 只有在查询条件准确地原创 2020-12-20 22:13:49 · 1594 阅读 · 0 评论 -
JAVA实现乐观锁-CAS算法
场景模拟假设商品有500件库存,进行促销预购,每有一位客户预购,商品预购数加1。省略数据库的操作,用i++来模拟数据库操作正常JAVA实现public class CASTest { public static int numValue;//商品预购数 public static void main(String[] args) throws InterruptedException { CASTest test = new CASTest(); for (int i = 0; i &原创 2020-12-20 17:45:12 · 1554 阅读 · 3 评论 -
用cmd控制台编译java文件和运行class文件
步骤在目录G:\test(视为项目路径)下创建一个com文件夹,com目录下创建一个test.java文件,文件内容如下:package com;//这个是项目下的目录路径,在哪个目录就是对应的相对目录名public class test { /** * @param args */ public static void main(String[] args) { ...原创 2019-02-12 14:36:09 · 9747 阅读 · 2 评论 -
java -- 随机获取字母或者数字
java只有涉及到随机的,最经常用到的方法就是Math.random(),这个方法会返回一个大于0小于1的随机数( 能取0不能取1 ),如果我们要随机0-9,就可以用(Math.random()*10)来表示,随机0-99也类似如此操作。 一:随机获取0-66代码实例: public static void main(String[] args) { for...原创 2019-02-20 15:54:00 · 9274 阅读 · 0 评论 -
java —— token的使用工具类
http是个无差别访问,就是无论你访问多少次,服务器都无法知道你是谁。所以后来有了session出现来解决用户验证的问题,但是session是个很重要的资源,往往保存少量且重要的数据。但是随着用户量增大,session所占的内存也越来越大,服务器的压力也大,所有后面出现了token,它把session的数据加密,可以保存进redis或者本地数据库,需要用户验证的时候再拿出来解析...原创 2019-05-09 14:46:10 · 3861 阅读 · 4 评论 -
java —— 序列化和反序列化实例
步骤: 创建实体类user.javapublic class user implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { ...原创 2019-05-23 11:45:44 · 415 阅读 · 0 评论 -
java —— 异步任务失败后处理
场景: 实际项目中,程序操作出了问题,后续要怎么处理是个很重要的问题,如果这个问题是同步操作引起的解决起来比较简单,比如用户注册,如果系统注册失败,后台可以马上返回错误信息,用户也可以马上看到错误点是什么。但是如果是异步操作,比如用户注册成功后,系统异步发送短信给用户,发短信的操作出问题了没有发出去,而且这个操作也不是用户主动操作了,所以可能会出现用户不知道你有这个操作,系统...原创 2019-06-29 23:24:04 · 8426 阅读 · 7 评论 -
java —— 后台利用监听器统计在线人数
APP或者网页应用经常需要检测当前活跃用户数,利用监听器HttpSessionListener ,可以在用户创建 session 的时候以此作为用户数+1的标志, session销毁时判断用户数-1.步骤: 创建监听器类SessionCounter.java:package com.dgh.listener;import javax.serv...原创 2019-08-21 14:35:57 · 1215 阅读 · 0 评论 -
Java查询目录下的所有文件(包括子目录)
目录图: 方法代码: /** * 读取目录下的所有文件 * * @param dir * 目录 * @param fileNames * 保存文件名的集合 * @return */ public static void findFileList(File dir, List<Stri...原创 2019-01-14 17:26:16 · 10544 阅读 · 0 评论