java基础
AmbroseLe
个人笔记
展开
-
spring boot 将数据分段导出excel 并压缩成压缩文件。后删除
场景:例如导出文件过于大,几百万条。excel最大可就只有100万条,那这时候。然后导出n个excel并压缩一下。使用ali的easyexcel。原创 2023-07-01 17:44:37 · 778 阅读 · 0 评论 -
Optional.ofNullable()方法 判空
【代码】Optional.ofNullable()方法 判空。原创 2023-06-28 16:47:24 · 799 阅读 · 0 评论 -
有一个100兆大小的文本文件,用java查询某字符串所在位置
这种方法使用内存映射文件,可以将文件映射到内存中,然后直接在内存中进行字符串匹配,速度比逐行读取文件要快。但是需要注意的是,这种方法会占用较多的内存,如果内存不足,可能会导致OutOfMemoryError。如果文本文件比较大,逐行读取文件会比较耗时。可以使用Java的内存映射文件(MappedByteBuffer)来加速字符串匹配。这种方法适用于文本文件比较小的情况,可以使用Java的BufferedReader逐行读取文件,并对每一行进行字符串匹配。原创 2023-05-24 11:52:23 · 841 阅读 · 1 评论 -
Json格式转list
如何将json字符串转化为list原创 2023-03-16 15:49:12 · 1092 阅读 · 0 评论 -
window java 备份数据库
首先你要找到你的mysql安装目录。下面有个 mysqldump.exe文件。-u你的数据库的用户名,不要跟空格。-p你的数据库密码。cmd /c D:/3-project/这就是你mysqldump.exe所在的位置。mysqldump 这个不是文件夹。这个是获取到当天的时间的 比如2022-10-18这种格式的。你可以把它复制到任意目录。比如你项目的目录下。下面这一段都是对于下面代码的解释。如果要定时备份那就写个定时任务就好了。原创 2022-10-18 16:00:15 · 352 阅读 · 0 评论 -
java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES) 异常
原来的连接代码账号密码加" " 就好了或者有data-的把data-去掉也可以原创 2021-03-29 09:02:52 · 182 阅读 · 0 评论 -
idea 各个版本下载
https://www.jetbrains.com/zh-cn/idea/download/other.html原创 2021-03-10 10:42:18 · 1285 阅读 · 0 评论 -
java 排序 Comparable list 对象方式
public class User implements Comparable<User> { private int id ; private string name; private int age; get...set.... @Override public int compareTo(User o) { int i = (int) (o.getAge() - this.getAge());//按照...原创 2020-12-10 16:57:54 · 221 阅读 · 0 评论 -
java int 32位不是最大32个9 而是 -2147483648 到2147483647
java 中 int 占4个字节。 000...1 32 位第一位是符号位。正数 为0;负数为 1;11...1 32个1 表示最小值 即为-2^32 =2147483648除了第一个符号位,这31个1的加权值之和为2^回31-1,而负数最高位也为1,该位在再次进位时仍满足负数的条件,即可答将最高位看成数值位,01....1;2^31-1 =2147483647最大值整数最高位必须一值为1,且原码等于补码,这就限制了整数的最大值31位的1相加,之和为2^31-1。...原创 2020-11-27 15:50:56 · 1082 阅读 · 0 评论 -
Java map的四种遍历方式 以及效率
// 存 5百万个数据 Map<String, Integer> map = new HashMap<>(); for (int i = 0; i < 5000000; i++) { Integer v = (int) Math.random() * 50; map.put("key:" + i, v); }四种遍历方式分别是1、map.keySet() *.原创 2020-11-23 16:39:28 · 1280 阅读 · 0 评论 -
java 多线程
什么是线程线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒线程和进程有什么区别线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。Java中实现线程jav原创 2020-11-16 16:31:55 · 154 阅读 · 0 评论 -
Invalid bound statement (not found) 常见原因
Invalid bound statement (not found) 意思是绑定错误。mapper.xml和mapper接口不那么一致,导致无法绑定对应。1。检查xml中的namespace 中填写的mapper 接口。是不是正确。也可以ctrl 然后点击试一下是否能点到 mapper里面2。看一下接口名称,和xml名称是不是一致。比如 xml名叫user,mapper 叫userMapper。那么就需要将user改为 userMapper。注:一般人不会去看这两个文件名是不是一直,所以。经.原创 2020-07-10 16:12:17 · 2429 阅读 · 0 评论 -
netty-实现websocket
netty介绍netty是一个高性能、事件驱动、异步非阻塞的 IO java 开源框架,由Jboss提供,建立tcp等底层连接。基于netty可以建立高性能的http服务器,快速开发,高性能高可靠的网络服务器和客户端程序,支持http、websocket、tcp、udp等。很多高性能的项目,把他作为socket底层的通信基础。netty是基于nio的客户服务端、服务端编程框架。使用netty可以快速的开发出简单的一个网络应用,netty相当简化的和流线化了网络应用的开发过程稳定性和伸缩性使用原创 2020-07-08 20:57:27 · 1704 阅读 · 0 评论 -
java常见面试题总结
float f=3.4;是否正确?不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。小数默认为双精度 double的。双精度向单精度转换。会导致精度损失的short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?对于short s1 = 1; s1原创 2020-07-06 23:02:27 · 284 阅读 · 0 评论 -
自定义注解 及 解析自定义注解
目录自定义注解需要注意元注解使用自定义注解解析注解自定义注解需要注意1-使用@interface来定义注解2-成员变量使用的是无参数、无异常的方式进行声明 例如 想要声明变量,正常方式是String name,而注解中需要String name();来定义成员变量3-使用default来给成员变量设置默认值4-成员变量的类型。可以是基本数据类型。还可以是String ,class ,annotation ,enumerate5-如果注解中只有一个成员变量,...原创 2020-07-02 21:23:49 · 2382 阅读 · 0 评论 -
多数据源动态切换 自定义注解方式
1、通过切面的方式进行数据源的切换;切的是 注解@DataSoure;@Pointcut("@annotation(com.manage.common.annotation.DataSource)" + "|| @within(com.manage.common.annotation.DataSource)")2、然后切面获取当前的方法的注解中所要切换的数据库3、设置数据源的变量ThreadLocal<String>CONTEXT_HOLDER.set(dsTy...原创 2020-07-01 16:06:21 · 1566 阅读 · 0 评论 -
将列表转为树形结构(前后端 写法)
dept_id parent_id ancestors dept_name 11 0 0 根 22 11 0,11 测试1 33 11 0,11 测试2 44 22 1,11,22 测试1-1 前端写法/** * 构造树型结构数据 * @param {*} data 数据源 * @param {*} id id字段 默认 'id' * @param {*} parentId 父节点字段原创 2020-06-11 17:57:40 · 974 阅读 · 2 评论 -
java 反射
介绍java的反射是指,在运行状态中,对于任意一个类,都可以知道这个类的所有属性和方法(包括私有的);对于任意一个对象,都可以调用它的任意方法和属性。动态的获取信息、动态的调用对象方法称为反射。使用一、获取私有权限在第三方应用开发中,会遇到某个类的成员变量、方法或属性是私有的,或者只对系统应用开放。这时候就需要使用java的反射来获取所需的。二、动态编译运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多 态的应用,有以降低类之间的藕合性例子...原创 2020-06-04 11:10:38 · 226 阅读 · 0 评论 -
java 实现用 我爱你来重新绘制图片 泡妹子专用
import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;public class MyFontImage { public static void createFongImg(String path){ String base = "我爱你"; .原创 2020-06-03 10:22:35 · 402 阅读 · 0 评论 -
判断对象内的 属性是否为空
看一下需求:在接收前端传参的时候,如果没有传数据,那么会是所有的属性都为 null,这时候进行判断参数是否为空 就不能单纯的 使用 param == null 来判断了 import java.lang.reflect.Field;import java.util.List; import org.slf4j.Logger;import org.slf4j.LoggerFactory; public class ObjectFildValidate { public sta原创 2020-05-26 15:59:51 · 4379 阅读 · 0 评论 -
java异常解析
Error (错误)与 Exception (异常)类统称为异常类Error和RuntimeException是非检查型异常,其他的都是检查型异常,但两者本质上还是有不同的Error:是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题(运行环境问题),专门用来处理严重影响程序运行的错误,通常程序设计者不会设计程序代码去捕捉这种错误,其原因在于即使捕捉到它,也无法给予适当的处理,如 JAVA 虚拟机出错就..原创 2020-05-21 13:47:39 · 519 阅读 · 0 评论 -
将一个实体类 赋值 给另一个实体类
将 ele 赋值给 eleResBeanUtils.copyProperties(ele,eleRes);使用场景:Entity 向 Info 转换平时我们会写数据库对应的实体类。而我们想要返回给前端的结果不想使用这个数据库对应的实体类。那么就需要有进行一个转换。可以使用 这种方式。BeanUtils.copyProperties(Entity ,Info );...原创 2020-04-17 10:35:38 · 5358 阅读 · 4 评论 -
ArrayList 源码 解读
trimToSize()判断size是不是为0。为0的话就给elementData 一个 空的 元素 数据 {}就是new一个初始容量为10的ArrayList,之后向里面加入2个元素,然后因为初始容量为10,所以现在的数组容量为10,但我们只向 arraylist 里面 add了两个元素,size为2,也就是说这个方法将elementData的数组设置为ArrayList实际的容量,动态...原创 2020-03-27 15:39:16 · 668 阅读 · 0 评论 -
枚举 enum 基本用法 以及 实现最佳单例模式
实现单例模式最佳的单例实现模式就是枚举模式。利用枚举的特性,让JVM来帮我们保证线程安全和单一实例的问题。除此之外,它更简洁,自动支持序列化机制,绝对防止多次实例化。不仅能避免多线程同步问题,而且还自动支持序列化机制,防止反序列化重新创建新的对象,绝对防止多次实例化。public enum Singleton { INSTANCE; private Demo demo...原创 2019-12-27 17:32:58 · 262 阅读 · 0 评论 -
父子类 静态代码块、代码块、构造方法的执行顺序 父类静态代码块-〉子类静态代码块-〉父类代码块-〉父类构造方法-〉子类代码块-〉子类构造方法
顺序是:父类静态代码块-〉子类静态代码块-〉父类代码块-〉父类构造方法-〉子类代码块-〉子类构造方法父类public class Fatcher { static { System.out.println("fatcher_static"); } { System.out.println("fatcher_daimakuai");...原创 2019-12-24 09:07:20 · 369 阅读 · 0 评论 -
负责和外部接口对接,发起http请求 util工具类 http.client方式
import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.config.RequestConfig;import org.apache.h...原创 2019-12-23 10:41:45 · 319 阅读 · 0 评论 -
二维码 QrCode工具类
pom <!-- 带logo的二维码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <vers...原创 2019-12-12 14:02:58 · 362 阅读 · 0 评论 -
MD5工具类
public class MD5Util { static final int S11 = 7; static final int S12 = 12; static final int S13 = 17; static final int S14 = 22; static final int S21 = 5; static final int S...原创 2019-12-12 13:57:11 · 201 阅读 · 0 评论 -
json工具类
pom <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <versio...原创 2019-12-12 13:53:10 · 215 阅读 · 0 评论 -
时间工具类
import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;import org.joda.time.DateTime;import org.joda.time.format.DateTimeFormat;import org.joda.time.f...原创 2019-11-21 15:40:46 · 132 阅读 · 0 评论 -
如何最快清空StringBuffer-StringBuilder
这是最快的stringBuilder.setLength(0);stringBuffer.setLength(0);原创 2019-11-21 15:31:07 · 197 阅读 · 2 评论 -
return 和 finally 谁先执行 debug走一下
有两种情况1、finally内没有returnreturn-〉finally-〉try中的return2、finally内有returnreturn-〉finally-〉finally中的return打印出来的结果是 100:200 这就可以知道是先执行了return 。然后debug跑一下public class Test2 { public static ...原创 2019-11-21 15:17:05 · 180 阅读 · 0 评论 -
map遍历
Set keys = map.keySet(); for (Iterator i = keys.iterator(); i.hasNext();) { String key = String.valueOf(i.next()); //判断Key是否存在 if (map.containsKey(key)...原创 2019-11-20 14:23:38 · 101 阅读 · 0 评论 -
java设计模式
1、工厂模式简介:工厂模式是java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了创建对象的最佳方式。用工厂模式创建对象,不会对客户端暴露创建逻辑,通过使用一个共同的接口来指向新创建的对象。具体代码:1、创建接口public interface Shape { void draw();}2、创建几个接口的实现类 public cl...原创 2018-11-21 09:59:57 · 165 阅读 · 1 评论 -
与其他系统接口对接(java),json格式数据传递···OkHttpClient方式
上一种方式HttpURLConnection方式出现了点问题,就是在idea中启动服务一切正常。当时用tomcat部署项目时候,对方接口接收参数出现中文乱码问题。用了很多方式都没有解决,不知有没有大佬可以解决引入依赖 <dependency> <groupId>com.squareup.okhttp3</groupId&...原创 2018-10-10 14:33:22 · 3505 阅读 · 0 评论 -
tomcat 发布 项目 访问时不带项目名
server中配置项目名也就是你在webapps下的war包的名字或者jar包名字原创 2018-10-09 15:49:43 · 440 阅读 · 0 评论 -
启动tomcat时cmd窗口一闪而过解决方法【尤其注意配置问题】
https://blog.csdn.net/baidu_32739019/article/details/64155136 然后就可以了转载 2018-10-09 14:02:19 · 226 阅读 · 0 评论 -
与其他系统接口对接(java),json格式数据传递···HttpURLConnection方式
这个操作是与****系统进行数据接口的对接,本系统向****系统传递几个参数,****系统接收并返回值。目录post请求方式@Service层工具类ResultUtilpom需要添加的依赖get请求方式另一种 OkHttpClient 方式post请求方式@Service层/*** 预约结果查看* 返回操作结果* ResultUtil是单独封装的用...原创 2018-09-27 15:25:28 · 10025 阅读 · 0 评论 -
日期型转json格式(springboot)
可以在属性上增加GMT+8表示东八区@JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd")或@JsonFormat(shape = JsonFormat.Shape.NUMBER)全局修改可以在application.ymlspring: jackson: #如果使用字符串星表示用这行格式 ...原创 2018-09-11 13:51:22 · 1019 阅读 · 0 评论 -
通过切面HttpAspect对项目日志打印管理
功能是对访问controller的用户进行打印输出其信息及操作 记录请求的url、请求了哪个接口controller、请求的地址ip等 以及记录请求的参数等信息 import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.*;import org.slf4j.L...原创 2018-11-26 14:47:31 · 838 阅读 · 0 评论