Java随笔
java随笔
晓倾城
这个作者很懒,什么都没留下…
展开
-
IDEA社区版来回跳转的时候目标tab会覆盖当前tab
IDEA社区版来回跳转的时候目标tab会覆盖当前tab原创 2023-02-09 10:01:58 · 1043 阅读 · 1 评论 -
站在API角度再看同步锁
静态锁对象/** * @Description: 锁 * @Author: 小马 * @Date: 2022/2/12 20:35 */public class ThreadLock { public static Object obj= new Object();}API/** * @Description: API * @Author: 小马 * @Date: 2022/2/12 20:37 */@RequestMapping("/thread")@RestCo原创 2022-02-12 21:56:36 · 476 阅读 · 0 评论 -
StreamTrace调试Stream流
JDK8一个重要特性就是Stream流,虽然Stream流提升了代码编写效率,以及简洁度,但是随之而来的则是调试难度的增加和团队协作中的代码易读性问题。IDEA提供了Stream Trace功能来调试Stream。/** * @Description: * @Author: 马宽 * @Date: 2021/11/19 12:37 */public class StreamTest { public static void main(String[] args) { Li原创 2021-11-19 12:52:57 · 664 阅读 · 0 评论 -
Stream流
Stream流中的peek,来看看源码注释。Returns a stream consisting of the elements of this stream返回由此流元素组成的流additionally performing the provided action on each element as elements are consumed from the resulting stream此外,当元素从生成的流中消耗时,在每个元素上执行所提供的操作(意思是说生成的流中元素发生操作时候,原创 2021-11-16 23:43:46 · 136 阅读 · 0 评论 -
近日Code
@Bean("自定义线程池名称") public ThreadPoolTaskExecutor saveDataExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); //核心线程数目 executor.setCorePoolSize(10); //队列中最大的数目 executor.setQueueCapacity(200原创 2021-11-07 21:32:38 · 230 阅读 · 0 评论 -
IO流复习
1.File文件系统中的 文件和目录 都可以通过File类进行封装,封装后可以对文件或者目录进行存在操作。1.1构造方法File(String pathname) File(String parent, String child) File(File parent, String child)File file1= new File("/home/mk/IdeaProjects/IO流复习/IO流01/file.txt");System.out.println(file1);File fi原创 2021-10-24 21:17:24 · 302 阅读 · 0 评论 -
在路径中或请求体重接收集合参数
public OutputResult noCheck(@RequestParam List<Long> dtids){ System.out.println(dtids); return OutputResult.alert(dtids); }}放在参数路径里面这样请求使用**?**拼接参数,集合中多个元素使用&链接,每个元素都是键值对的形式如:http://127.0.0.1:9067/reslt/nocheck?dtids=1&dti原创 2021-09-25 16:03:24 · 206 阅读 · 0 评论 -
flyway命名规范
两个英文下划线原创 2021-08-28 16:08:37 · 894 阅读 · 0 评论 -
获取时间段内的所有日期,所有月份,所有天数的操作
本文章主要介绍对所给的日期区间来求 区间内的所有日期,求区间内的所有月份,求年对应天数,求月份对应天数原创 2021-08-17 16:16:24 · 1228 阅读 · 0 评论 -
注解驱动aop
import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.a原创 2021-07-30 11:10:49 · 69 阅读 · 0 评论 -
spring加载配置文件的2种方式
1.配置方式property-placeholder<context: property-placeholder ignore-unresolvable="true" location="xxxx.properties"/>2.注解方式@PropertySource(value={“classpath:redis-key.properties”})@PropertySource(value={"classpath:xxxx.properties"})public class Rea原创 2021-07-30 09:28:18 · 200 阅读 · 0 评论 -
SpringBoot开启缓存
1.启动类开启缓存功能@EnableCaching2.在对应的controller上加@Cacheable(cacheNames = “xxx”,key = “#xxx”)@RequestMapping("/hh/{a}") @Cacheable(cacheNames = "myc",key = "#age") public String readFile3(@PathVariable("a")int age){ System.out.println("看看执行了吗");原创 2021-07-29 16:43:07 · 738 阅读 · 0 评论 -
Quartz实现定时任务
1.引入依赖 <!--quartz--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.0</version> </dependency> <dependency>原创 2021-07-26 16:57:48 · 189 阅读 · 0 评论 -
java中的位运算
//取模结果:1 &全一为一,否则为零 System.out.println(1&5); //右移除2结果:1 System.out.println(2>>1); //左移乘2结果:4 System.out.println(2<<1); //异或 相同为0 不同为1 //01100 //10000 // ------------原创 2021-07-13 16:05:15 · 61 阅读 · 0 评论 -
解决idea中xml注释出现空格和顶格问题
原创 2021-07-04 14:01:32 · 1862 阅读 · 1 评论 -
MVC中接收参数的三个常用注解
1.@RequestParam------接收key value2.@RequestBody-----专门接收负载中的JSON3.@RequestPathVariable------路径参数,用于RestFul风格路径参数接收原创 2021-07-04 10:26:08 · 257 阅读 · 0 评论 -
Mybatis分页插件使用方法
分页插件使用方法1在调用查询集合结果之前,首先使用PageHelper来设置分页当前页和页大小PageHelper.startPage(queryPageBean.getCurrentPage(),queryPageBean.getPageSize());2.然后把查询出来的结果列表用PageInfo来包裹一下PageInfo<CheckItem> pageInfo=newPageInfo(checkItemList);3.在 pageInfo中有丰富的信息...原创 2021-07-02 15:37:43 · 526 阅读 · 0 评论 -
Stream流
1.Stream流和二进制流并没有太大关系,Stream流旨在给开发者函数式编程体验,把业务处理以流水线的方式实现。2.流水线上放的是什么呢?在工厂里面要么是手机零件,要么是苹果香蕉,上面要处理的肯定是一类东西的集合。不严谨的说流就是用来处理集合容器中的元素的。3.使用流的步骤获取Strem流–》使用中间方法操作数据----》终结方法停止流处理-----》输出处理结果4.获取流的几种方式4.1单列集合使用集合对象.stream()4.2双列集合需要先提取成单列集合然后进行获取流4.3数组通过数原创 2021-06-20 23:57:36 · 291 阅读 · 0 评论 -
java中的代码块
1.静态代码块在类中方法外,static{xxx},在一次线程任务中只加载一次。2.构造代码块在类中方法为,{xxx},优先构造函数执行,每次new都会执行。3.普通代码块在方法中,每次调用方法都会执行多个代码块之间的执行顺序和出现的线后顺序有关。/** * @author mark * @date 2021年06月20日15:34 */public class Human { private String name; static { System.out.原创 2021-06-20 15:47:21 · 86 阅读 · 0 评论 -
前后端分离开发跨域问题
解决方法,在请求控制器上加上相应的注解允许跨域访问原创 2021-06-19 21:01:35 · 85 阅读 · 0 评论 -
JDK9创建不可变集合
static <E> List<E> of(E…elements) 创建一个具有指定元素的List集合对象static <E> Set<E> of(E…elements) 创建一个具有指定元素的Set集合对象static <K , V> Map<K,V> of(E…elements) 创建一个具有指定元素的Map集合对象...原创 2021-06-19 20:35:42 · 132 阅读 · 0 评论 -
自定义异常
1.编写一个异常并继承需要处理的异常/** * @author mark * @date 2021年06月09日13:39 */public class MyMathError extends ArithmeticException{ private String message; public MyMathError(String message) { this.message = message; } @Override public原创 2021-06-16 21:05:43 · 120 阅读 · 0 评论 -
RestTemplate发送post请求并携带头信息和参数
对于不了解http协议的建议使用这个方法restTemplate.postForObject(url,参数实体,返回实体.class)把需要的参数实体类对象直接扔进方法第二个参数即可如果需要携带头信息则需要对第二个参数进行封装具体如下:HttpHeaders requestHeaders = new HttpHeaders();我需要携带token验证,我使用的方法如下,其他同理可以自己试一试 requestHeaders.setBearerAuth("Yxxxxxxxxxxx原创 2021-06-03 20:58:39 · 6048 阅读 · 0 评论 -
03Java实现二分查找
/** * @author mark * @date 2021年06月03日10:05 */public class BinarySelect { public static void main(String[] args) { int [] arr = {1,2,3,4,5,6,7,8,9,10}; int i = myBinarySelect(arr, 7); System.out.println(i); } privat原创 2021-06-03 13:41:08 · 51 阅读 · 0 评论 -
02Java实现冒泡排序
import java.util.Arrays;/** * @author mark * @date 2021年06月03日8:55 */public class MyBubbleSort { public static void main(String[] args) { int[] arr = {3, 5, 2, 1, 4}; bubbleSort(arr); System.out.println(Arrays.toString(arr原创 2021-06-03 13:38:53 · 57 阅读 · 0 评论 -
01Java实现-快速排序
/* 快排思路: 1.确定基准数,通常是左边第一个即第0个 2.从右边开始找,找到比基准数小的 3.从左边开始找,找到比基准数大的 4.如果都找到则交换二者的位置 5.左边继续往右边找,右边继续往左边找,两个索引相同时--基准数归位 */import java.util.Arrays;/** * @author mark * @date 2021年06月03日7:52 */public class CompletedCode {...原创 2021-06-03 13:36:48 · 76 阅读 · 0 评论 -
线程池
作用: 解决我们频繁创建线程以及销毁线程的过程, 节约了资源以及提高的程序的运行效率, 创建线程比较耗费时间的.代码创建方式 Executors 的 static ExecutorService newCachedThreadPool() static ExecutorService newFixedThreadPool(int nThreads) ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTim原创 2021-05-16 13:05:13 · 102 阅读 · 0 评论 -
VSCode快速对齐代码
刚使用vscode发现代码容易写着容易乱,之前用IDEA是CTRL+L进行代码的格式化对齐,vscode自带也有快捷键,需要先选中需要格式化的代码,然后使用组合键shift + alt +f 进行格式化shift + alt +f原创 2021-04-01 15:53:58 · 13761 阅读 · 1 评论 -
Typora安装后的三个重要配置
1.开启自动保存2.配置插入图片时图片放置的位置这个配置起到把插入图片自动放到与当前笔记同级的assets中,如果没有这个文件夹,它会自动生成一个。3.关闭打字机模式原创 2021-03-31 18:22:49 · 286 阅读 · 0 评论 -
解决原生JavawebSerlevt只能处理一个请求的方案
造成这样问题的原因是因为一个请求和servlet的Mapping绑定死了,造成前台一个功能绑定了不同的路径,那么我们让所有可以分为一类的方法都绑定到一个Mapping就可以。那么所有功能都指向一个mapping后如何进行业务的分发呢?第一阶段我们可以对在前台请求的时候携带一个方法名,然后在servlet里面进行逻辑判断,根据方法名进行分发。//1.获取操作名称 String method = req.getParameter("method"); if("toAdd"原创 2021-03-25 23:10:00 · 367 阅读 · 0 评论 -
016自己造的错误之util中的date和sql中的date
JAVA中封装对象的时候使用的是util中的date,导致插入数据库前类型不匹配无法插入数据。解决办法。首先使用getTime方法获取long型的时间,然后使用sql的Date取构造对象stu.getBirthday().getTime()new Date(stu.getBirthday().getTime())...原创 2021-03-25 19:06:43 · 73 阅读 · 0 评论 -
通过多态,反射,配置文件,工厂来解耦
案例学生管理系统,获取所有学生的功能1.控制层@WebServlet("/GetAllStuServlet")public class GetAllStuServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setC原创 2021-03-24 22:51:11 · 112 阅读 · 0 评论 -
JavaBean类设置视图函数
JavaBean类代码视图函数代码这个代码用于给属性值进行格式化打印 public String getBir() { SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM月dd日"); String format = simpleDateFormat.format(this.birthday); return format; }JavaBean属性 priva原创 2021-03-23 18:46:23 · 106 阅读 · 0 评论 -
验证失败,可能为XMind 2013 Pro序列号。升级到XMind 8?解决方法
解决方案发现自己的配置文件中书写错误,多写了两个英文符号。原创 2021-03-21 21:16:14 · 1732 阅读 · 0 评论 -
聊聊JavaWEB中的相对路径
1.先来聊聊前端的html对于前端中的路径我们来举个例子1.1造一个servlet@WebServlet("/Servlet001")public class Servlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Str原创 2021-03-14 22:09:22 · 229 阅读 · 0 评论 -
Session存储集合
@WebServlet("/adds")public class AddSesseionSServlet extends HttpServlet { static TreeSet users= new TreeSet<String>(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException原创 2021-03-10 18:54:19 · 606 阅读 · 0 评论 -
日志技术造
1.引入三个jar包2.在src下创建配置文件log4j.rootLogger=warn,my,fileAppender#第一行为根loger#第一行第一个为级别#后面的参数是 输出到哪里### direct log messages to my ####ConsoleAppender 控制台输出#ImmediateFlush = true 所有消息都会被立刻输出#Target=System.out 用什么方式输出System.err#.PatternLayout 自定义日志输原创 2021-03-03 20:33:48 · 78 阅读 · 2 评论 -
单元测试技术
使用步骤1.模块新建一个libs包2.导包我用的是Junit-4.93.add as library4.编写测试类注意:测试类不用写main()方法被测试的方法必须是 公共的 无参数的 无返回值的运行没有异常则绿有异常则红public class MathCalTest { //单元测试类中的方法 @Test public void getSum(){ int a=1; int b=3; int sum=a+b;原创 2021-03-03 20:23:22 · 168 阅读 · 1 评论 -
注解自定义以及解析
如果定义一个注解public @interface 自定义注解名称 {}上面就是一个注解的定义,并且我们可以创建一个测试类,看看我们写的注解能不能加上去,发现没毛病public class MyMethods { @MyAnno() private void method(){ System.out.println("方法四执行了"); }}我们接着学习有关注解的其他内容。我们发现注解定义的时候不就是一个接口吗?,所以我们试着往里面加一些抽象方法原创 2021-03-02 20:19:53 · 233 阅读 · 0 评论 -
使用实现Runnable接口方式实现多线程之时间管理大师
故事引入假如有一天晚上,小红的十个男朋友同时给她发消息,小红我今天晚上过去,晚上别锁门。小红也不好意思拒绝其中一个,为了避免尴尬,于是给他们每一个人都说了一个来说悄悄话的时间。我们发现在这里小红是共享的,同时还可以给每一个男朋友说来找她的时间。在这里我们可以定义一个女朋友类叫小红并且实现Runnable接口但是为了数一数现在来过了几个男朋友,所以我们知道小红心里有一个计数器count;public class XHong implements Runnable{ private int co原创 2021-03-01 20:27:42 · 224 阅读 · 0 评论