
Java学习
路先生的杂货铺
【坚持做优快云的一股清流】学习如逆水行舟,不进则退。今天不努力,明天变垃圾。
展开
-
Java List, Integer[], int[]的相互转换
4、Ctrl+Left/Right 移动光标到前一个/后一个单词处,加Shift键,产生选中效果;6、Ctrl+W 按语法选中代码,连续按会有其他效果,加Shift键,产生反向选中效果;8、Ctrl+”+/-“ 当前方法展开/折叠,加Shift键,全部方法展开/折叠;1、Ctrl+Alt+Left/Right 光标定位到上一个/下一个浏览位置处;5、Ctrl+[/] 移动光标到前/后代码块,加Shift键,产生选中效果;10、Ctrl+Alt+V 提出选中内容为局部变量。原创 2022-12-14 09:16:46 · 536 阅读 · 0 评论 -
SSM框架 Tomcat 停止时 JAVA进程未停止 的解决方法
SSM框架结束时报错如下:这会导致Tomcat 服务器停止后Java进程尚未停止, 继续占用内存, 必须通过 类似 kill -9 之类的命令去杀死java进程.这是由于在服务器停止时有些线程尚未销毁所引起的, 如ThreadLocal; Scheduler 启动的线程; JDBC driver等.解决办法:自定义ContextLoaderListener,在项目结束时关闭他们:/** * 自定义的ContestLoaderListener * 监听servletContext创建和消亡,即原创 2020-07-01 01:11:38 · 623 阅读 · 0 评论 -
雪花算法(snowflake)
snowflake方案snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。这种方案大致来说是一种以划分命名空间(UUID也算,由于比较常见,所以单独分析)来生成ID的一种算法,这种方案把64-bit分别划分成多段,分开来标示机器、时间等。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号,最后还有一个符号位,永远是0。比如在snowflake中的64-bit分别表示如下图(图转载 2020-06-22 22:45:27 · 1128 阅读 · 0 评论 -
Mybatis 自定义类型解析器
Mybatis自定义类型解析器引言:有很多场景,Mybatis提供的自动类型解析并不能够满足功能需求,例如你期望将一个List<String>存入数据库中,这时就需要自己配置一个类型解析器。业务场景这里首先进行我的业务场景说明:我需要实现如下 sql 字段属性与实体类的转换:`subject` set('CHINESE','MATH','ENGLISH','PHYSICS','CHEMISTRY','BIOLOGY','GEOGRAPHY','HISTORY','POLITICS'原创 2020-06-10 23:06:44 · 757 阅读 · 0 评论 -
Mybatis缓存和延迟加载
Mybatis 中的延迟加载1、什么是延迟加载问题:在一对多中,假设一个用户有一百个账户。查询用户的时候需不需要把账户都查出来?查询账户的时候需不需要把用户都查出来?我们发现,当不需要的时候,完全不需要把用户中的所有账户都查询出来,这样创建对象占用很多内存,但是并不一定使用。但是我们在一些的时候又需要账户信息,所以需要延迟加载机制。我们希望在需要的时候,再发起查询 ,也叫按需加载,也叫懒加载。而账户查询时一般都需要查询对应的用户,需要立刻加载。在对应的四种表关系中:一对多、多对一、一对一原创 2020-05-10 20:09:31 · 280 阅读 · 0 评论 -
Java 位运算总结
位运算总结参加运算的两个数的二进制按位进行运算运算符"^"二进制位进行“异或”运算,运算规则:参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。0 ^ 0=00 ^ 1= 11 ^ 0= 11 ^ 1= 0运算符"|"二进制“或”运算,运算规则:参加运算的两个数只要两个数中的一个为1,结果就为1。0 | 0= 01 | 0= 10 | 1=...原创 2020-03-24 15:27:50 · 396 阅读 · 1 评论 -
详解七种排序算法+Java实现
排序算法总结一、关于排序算法什么是排序?我们来看一下《大话数据结构》这本书上的定义:那么我们需要首先了解关于排序的相关名词或者称为属性:稳定性复杂度这里稳定性和复杂度是体现一个排序算法是否更合理更便捷的衡量标准。稳定性分为稳定和不稳定两种,表示排序算法对原数据顺序的改变,例如:若有a=b,排序前a在b之前,排序后a还是在b之前,那么说这个排序是稳定的;相反,若排序后a变到了b之...原创 2020-02-15 20:55:48 · 470 阅读 · 0 评论 -
BIO NIO AIO (NIO详解)
文章目录BIONIO一、基本知识二、NIO编程流程1. NIO的服务端编程流程2. NIO的客户端编程流程三、相关知识1. Channel定义:主要的实现类:2. Buffer3. Selector:选择器3.1 选择器的使用:3.2 Seletor选择器中重要类之SelectionKey:3.3 Selector维护的三种类型SelectionKey集合:3.4 select()方法介绍:3.5...原创 2020-02-11 20:25:54 · 1223 阅读 · 0 评论 -
Java 死锁检查与快速确定位置
快速找到死锁位置我们在写项目或者写程序的时候,可以会遇到死锁问题,但是这类错误却不好用一般情况查找,代码量很大或者不易察觉,这里介绍使用JDK自带的Java VisualVM 快速定位死锁位置。首先,这里写了一个死锁代码来演示如何查询死锁位置:public class DeadLock { private static Object o1 = new Object(); pr...原创 2020-01-02 19:30:27 · 393 阅读 · 0 评论 -
Java 哲学家就餐问题
哲学家就餐问题问题描述:假设有五位哲学家围坐在一张圆形餐桌旁, 做以下两件事情之一:吃饭,或者思考。 吃东西的时候,他们就停止思考,思考的时候也停止吃东西。 餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。哲学家从来不交谈,这就很危险,可能产生死锁每个哲学家都拿着左手的餐叉,永远都在...原创 2019-12-29 15:56:55 · 1003 阅读 · 0 评论 -
java处理浮点数小数点后几位
第一种方法:double f = 123.2315455458;BigDecimal b = new BigDecimal(f);double f1 = b.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue(); //保留3位小数,最后一位四舍五入System.out.println(f1);输出为:123.232第二种方法:D...转载 2019-12-29 11:48:45 · 1657 阅读 · 0 评论 -
java Swing窗口在屏幕中默认显示的位置 居中位置显示
实现新创一个窗口就让其出现在屏幕中央,美观实用~方法一:代码如下:setLocationRelativeTo(null);方法二:首先获取屏幕尺寸大小,根据屏幕尺寸再确定窗口位置Toolkit tk = this.getToolkit();//得到窗口工具条Dimension dm = tk.getScreenSize();setLocation((int)(dm.getWidth...原创 2019-12-23 16:46:25 · 912 阅读 · 0 评论 -
Java char数组转String的一个小坑
【JAVA】char数组转String的一个小坑今天写一个图形用户界面,从JPasswordField中读取密码,存入数据库中,遇到了一个char数组转string的小坑,在这里记录一下。首先我们都知道,char数组转化为int的几种方法: char[] arr = new char[]{}; String str1 = String.valueOf(arr); //不可取 ...原创 2019-12-23 16:31:43 · 999 阅读 · 0 评论 -
Java 实现简单打字游戏
打字游戏题目:代码实现:题目:编写一个打字游戏,从一个面板顶端随机出现一些字母,字母按一定的时间自顶向下移动,如果字母接触到面板底端则Game Over,用户可以通过敲击键盘消除移动中的字母。绘制出GUI界面的简易图生成含有大小写随机字母并记录的方法字母移动并显示的线程类敲击键盘事件的响应方法(用于消除字母)代码实现:package ClickLetter;import j...原创 2019-12-12 20:37:20 · 3422 阅读 · 0 评论 -
转换流介绍及源码分析
转换流:在《Java网络编程》中,有这样一段话:“Reader和Writer最重要的子类是InputStreamReader和OutputStreamWriter类。InputStreamReader类包含了一个底层输入流,可以从中读取原始字节。它根据指定的编码方式,将这些字节转换为Unicode字符。OutputStreamWriter从运行的程序中接收Unicode字符,然后使用指定的...原创 2019-11-24 01:01:22 · 344 阅读 · 0 评论 -
ListIterator源码分析
1.ListIterator的使用介绍属于迭代器,是Iterator的子接口ListIteritor接口://继承关系 ListIterator继承自Iteratorpublic interface ListIterator<E> extends Iterator<E> //方法//判断下一个要访问的元素是否为空boolean hasNext();//获取...原创 2019-10-27 16:45:46 · 502 阅读 · 0 评论 -
类加载过程深入理解
类的加载过程类的加载过程分为三个阶段:加载 链接 初始化一、加载Java 虚拟机一般使用Java 类的流程:首先将开发者编写的Java 源代码(.java 文件)编译生成Java 字节码文件(.class 文件),然后类加载器会读取字节码文件,并转换成java.lang.Class 对象。有了该 Class 对象后,Java 虚拟机可以利用反射方法创建其真正的对象了。Java 提供的类加载器...原创 2019-10-08 14:39:37 · 236 阅读 · 1 评论 -
Java 实现四则运算 附实现代码
JAVA实现四则运算一、四则运算概念四则运算是指加法、减法、乘法和除法四种运算,例如:1+(2-3/4)*5 。我们可以很快得到答案,但如何通过编程实现其运算呢?波兰的一位叫做卢卡西维奇的逻辑学家发明了一种表示表达式的方法,称为逆波兰式,也叫后缀表达式。平时我们所看到的四则运算,都是中缀表达式,因为运算符总是处在数字的中间。计算机首先将我们常见的中缀表达式转换为后缀表达式,然后再进行运算。转...原创 2019-09-30 17:54:29 · 9174 阅读 · 1 评论 -
Java 单链表知识点总结及代码实现
JAVA实现单链表本文通过JAVA实现单链表的基本功能实现功能单链表的:头部增加、头部删除尾部增加、尾部删除增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图的mermaid语法1 功能;增加了 多屏幕编辑 Markdown文章功能;增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能...原创 2019-09-27 12:41:08 · 840 阅读 · 0 评论 -
继承时类的初始化顺序验证
我们可以编写程序查看://父类class Test{ public Test(){ System.out.println("父类实例变量"); }}class StaticTest{ public StaticTest(){ System.out.println("父类静态变量"); }}class People{ ...原创 2019-06-29 12:13:32 · 245 阅读 · 0 评论 -
idea设置断点调试
#关于idea调试转载 2019-03-25 17:20:21 · 3114 阅读 · 0 评论