Java
清宵尚温。
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
java8新特性-Optional 类
java8新特性-Optional 类Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。示例public class Java8Tester { public static void main(String args[]原创 2021-07-23 17:27:16 · 147 阅读 · 0 评论 -
【已解决】idea中maven工程不被识别解决,及Idea导入maven项目不自动识别pom.xml解决
idea中maven工程不被识别解决,及Idea导入maven项目不自动识别pom.xml解决。1. idea中maven工程不被识别在用idea写maven工程的时候,发现pom文件没有被idea识别(格式是正确的),它的pom.xml文件是这个样子的解决方式是点击idea最右侧一栏的Maven Projects再点击 绿色的 +在出现的选择框中选择指定的未被识别的pom.xml即可2. Idea导入maven项目不自动识别pom.xml当在idea中导入maven项目时,不能自动识别原创 2021-06-07 07:56:19 · 14656 阅读 · 1 评论 -
在Java中>、>>、>>>三者的区别
在Java中>、>>、>>>三者的区别在JAVA中“>” 表示大于,如:if(a>b)…结果是boolean类型">>“在c++中,移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位原创 2021-02-16 09:43:44 · 1603 阅读 · 0 评论 -
maven执行package/install阶段跳过test步骤
maven执行package/install阶段跳过test步骤最近在使用jenkins构建打包时,每次打包都执行了Test Case ,这个就有点尴尬了,所以在官网找了插件,解决下这个问题;maven环境:Maven3.3.9中验证通过。方案一:在需要的模块/项目的pom文件中添加:To skip running the tests for a particular project, set the skipTests property to true.<project>原创 2021-01-21 17:20:57 · 725 阅读 · 0 评论 -
一分钟快速配置win10的Java环境变量,适用于1809和1903新版的系统
一分钟快速配置win10的Java环境变量1. 此电脑右键选择属性2. 选择环境变量3. 选择右下角的新建5. 添加一些属性值6. 判断是否配置成功1. 此电脑右键选择属性2. 选择环境变量3. 选择右下角的新建5. 添加一些属性值JAVA_HOME添加D:\developer_tools\Java\jdk1.8.0_212CLASSPATH添加.;%JAVA_HOME%\lib\d...原创 2019-07-12 13:30:13 · 772 阅读 · 0 评论 -
用ArrayList来实现MyStringBuffer
用ArrayList来实现MyStringBufferMyStringBuffer练习,但是不使用字符数组,而是使用ArrayList来实现实现代码如下:IStringBuffer.javapackage j2se;public interface IStringBuffer { public void append(String str);//追加字符串 public voi...原创 2019-04-17 17:03:55 · 372 阅读 · 0 评论 -
简单的文本加密解密
简单的文本加密解密加密模块解密模块加密模块准备一个文本文件(非二进制),其中包含ASCII码的字符和中文字符。设计一个方法public static void encodeFile(File encodingFile, File encodedFile);在这个方法中把encodingFile的内容进行加密,然后保存到encodedFile文件中。加密算法:数字:如果不是9的数...原创 2019-04-07 11:07:51 · 5158 阅读 · 0 评论 -
Java中拆分文件和合并文件(输入流和输出流模块)
拆分文件与合并文件1.拆分文件2.合并文件1.拆分文件找到一个大于100k的文件,按照100k为单位,拆分成多个子文件,并且以编号作为文件名结束。比如文件 eclipse.exe,大小是309k。拆分之后,成为eclipse.exe-0eclipse.exe-1eclipse.exe-2eclipse.exe-3思路:先把源文件的所有文件读取到内存中,然后从内存中挨个存到子文...原创 2019-04-03 22:58:44 · 1175 阅读 · 1 评论 -
Java中找文件夹中最小或者最大的文件
Java找文件夹中最小或者最大的文件1. 不包括子文件夹中的文件2. 包括子文件夹中的文件题目:一般说来操作系统都会安装在C盘,所以会有一个 C:\WINDOWS目录。遍历这个目录下所有的文件(不用遍历子目录或者遍历子目录)找出这些文件里,最大的和最小(非0)的那个文件,打印出他们的文件名注: 最小的文件不能是0长度1. 不包括子文件夹中的文件思路:创建文件数组,直接比较pac...原创 2019-04-03 17:32:01 · 1629 阅读 · 2 评论 -
how2j上一道异常类的综合小练习
异常类的小练习异常类综合练习how2j异常练习综合异常类综合练习练习一:没有透支额度Account类: 银行账号属性: balance 余额方法: getBalance() 获取余额方法: deposit() 存钱方法: withdraw() 取钱OverdraftException: 透支异常,继承Exception属性: deficit 透支额练习二:有透支额度类: ...原创 2019-04-01 21:25:07 · 337 阅读 · 0 评论 -
Java中时间数组的排序问题
Java中时间数组的排序问题有一道习题:准备一个长度是9的日期数组使用1970年-2000年之间的随机日期初始化该数组按照这些日期的时间进行升序排序比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面因为它的时间更小,虽然日期更大注意以下问题:日期的自定义格式化保持字符串格式的一致性日期如何进行排序解决方法:Simpl...原创 2019-03-27 17:16:57 · 2939 阅读 · 0 评论 -
MyStringBuffer对字符串的一些操作,比如插入和删除
MyStringBuffer对字符串的一些操作,比如插入和删除1.写代码前需要考虑的问题2. 写一个接口3.实现这个接口以how2j上部分代码作为参考1.写代码前需要考虑的问题为什么StringBuffer可以变长?和String内部是一个字符数组一样,StringBuffer也维护了一个字符数组。 但是,这个字符数组,留有冗余长度比如说new StringBuffer(“the”),...原创 2019-03-27 10:23:37 · 743 阅读 · 0 评论 -
Arrays工具类的使用以及一个小练习的难点
Arrays工具类的使用Arrays的使用Arrays的定义数组复制转换成字符串排序搜索判断是否相等填充上述代码汇总二维数组排序练习Arrays的使用Arrays的定义Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。数组复制与使用System.arraycopy进行数组复制类似的, Arrays提供了一个copyOfRange方法进行数组复制。不同的是System...原创 2019-03-07 23:39:20 · 336 阅读 · 0 评论 -
二维数组初始化和找最大值,不会多看几遍代码
二维数组初始化和找最大值二维数组初始化二维数组找最大值二维数组初始化我们先看一维数组初始化这是一个一维数组, 里面的每一个元素,都是一个基本类型int int a[] =new int[]{1,2,3,4,5};接下来看二维数组初始化这是一个二维数组,里面的每一个元素,都是一个一维数组所以二维数组又叫数组的数组int b[][] = new int[][]{ ...原创 2019-03-07 20:55:36 · 982 阅读 · 0 评论 -
复制数组System.arraycopy的用法以及对随机数Math.random的一些思考
复制数组System.arraycopy的用法以及对随机数Math.random的一些思考复制数组函数的定义复制数组的小练习对于随机数Math.random()函数的一些思考复制数组函数的定义System.arraycopy(src, srcPos, dest, destPos, length)src: 源数组srcPos: 从源数组复制数据的起始位置dest: 目标数组destP...原创 2019-03-07 14:21:07 · 287 阅读 · 0 评论 -
入门者初步了解增强for循环
初学者初步了解增强for循环增强for循环用法普通for循环用法简单练手题增强for循环用法for(数据类型变量名 :被遍历的集合(collection)或者数组){执行语句}因为初学者还不懂集合,我们只用数组来演示我们一般用增强for循环来取数组的值,而不修改里面的值for (int item : array) { System.out.println(item); ...原创 2019-03-07 10:01:06 · 158 阅读 · 0 评论 -
选择排序和冒泡排序,不懂多看几遍代码
选择排序和冒泡排序选择排序法冒泡排序不懂得多看几遍代码就会了选择排序法思路:把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来,比较完后,第一位就是最小的然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来,比较完后,第二位就是第二小的以此类推// package j2se;public class XuanZeFaPaiXu { p...原创 2019-03-06 23:00:37 · 836 阅读 · 0 评论 -
Java上的Math一些调用函数
Math三角函数与属性Math.sin() -- 返回数字的正弦值Math.cos() -- 返回数字的余弦值Math.tan() -- 返回数字的正切值Math.asin() -- 返回数字的反正弦值Math.acos() -- 返回数字的反余弦值Math.atan() -- 返回数字的反正切值Math.atan2() -- ...转载 2019-03-05 16:02:20 · 675 阅读 · 0 评论 -
Tomcat详细教学
Tomcat的安装与配置1. Tomcat的下载2. 解压的指定目录3. 新建环境变量 CATALINA_HOME,值写解压目录4. 在 Path 环境变量中加入 Tomcat 解压目录\bin 目录5. 测试是否安装成功1. Tomcat的下载进入Tomcat官网 https://tomcat.apache.org/download-90.cgi找到以下的文件点击下载,电脑是64位选择64...原创 2019-07-12 12:56:42 · 411 阅读 · 0 评论 -
非常详细的Maven安装与配置教程
Maven的安装与配置1. 下载Maven2. 解压压缩包3. 添加 M2_HOME 和 MAVEN_HOME4. 添加到环境变量 - PATH路径下5. 验证Maven是否成功安装6. 修改本地仓库位置7. 添加Maven阿里云仓库1. 下载Maven访问 Maven官方网站 http://maven.apache.org/download.cgi找到以下链接并下载2. 解压压缩包下载...原创 2019-07-12 12:33:11 · 33434 阅读 · 16 评论 -
多线程之生产者与消费者
多线程之生产者与消费者问题描述程序编写问题描述生产者消费者问题是一个非常典型性的线程交互的问题。使用栈来存放数据1.1 把栈改造为支持线程安全1.2 把栈的边界操作进行处理,当栈里的数据是0的时候,访问pull的线程就会等待。 当栈里的数据是200的时候,访问push的线程就会等待提供一个生产者(Producer)线程类,生产随机大写字符压入到堆栈提供一个消费者(Consumer)...原创 2019-05-01 19:52:19 · 836 阅读 · 0 评论 -
哲学家吃饭问题-对线程死锁的理解
哲学家就餐问题-对线程死锁的理解两个线程的死锁问题:线程1 首先占有对象1,接着试图占有对象2线程2 首先占有对象2,接着试图占有对象1线程1 等待线程2释放对象2与此同时,线程2等待线程1释放对象1此时就会一直等待下去,直到天荒地老,海枯石烂,山无棱 ,天地合。。。史上著名哲学家吃饭问题:一张圆桌上坐着5名哲学家,每两个哲学家之间的桌上摆一根筷子,桌子的中间是一碗米饭,如图...原创 2019-04-30 10:54:30 · 491 阅读 · 0 评论 -
多线程创建的三种方式
多线程创建的三种方式1. 继承线程类2. 实现Runnable接口3. 匿名类4. 练习题,多线程遍历文件找指定内容进程和线程的区别其余的代码创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类以下通过how2j上部分代码和文字作为理解文章原始链接如下:http://how2j.cn/p/1581代码实现场景:盖伦杀掉提莫,赏金猎人杀盲僧,同时进行1. 继承线程...原创 2019-04-28 16:17:31 · 296 阅读 · 0 评论 -
how2j上DAO的实现
how2j上DAO的实现how2j上的内容,我整理一下上传,代码自己手打的,都是运行过上传。DAO的实现只要通过代码大概了解即可两个知识点:ORM = Object Relationship Database Mapping对象和关系数据库的映射简单说,一个对象,对应数据库里的一条记录DAO = DataAccess Object数据访问对象实际上就是运用了ORM中的思路,把数...原创 2019-04-26 16:49:13 · 263 阅读 · 0 评论 -
通过JDBC进行 分页查询
通过JDBC进行 分页查询问题:设计一个方法,进行分页查询public static void list(int start, int count)start 表示开始页数,count表示一页显示的总数list(0,5) 表示第一页,一共显示5条数据list(10,5) 表示第三页,一共显示5条数据进行分页查询用到的SQL语句参考 :例如:显示前5条数据select * f...原创 2019-04-24 14:01:00 · 850 阅读 · 0 评论 -
1,2,3,4,5...和[“1“,“2“,“3“,“4“,“5“]的相互转换问题
一. 问题描述:前端回传的数组看上去是一个带有括号的形式,比如[“1”,“2”,“3”,“4”,“5”]这种的,但是打印输出的时候结果是 1,2,3,4,5…从我的个人角度而言,[“1”,“2”,“3”,“4”,“5”]是一个json数组,存库的时候可以放入数据库中,方便用后期使用mysql的json函数,这就要求我们使用函数相互转换存入数据库。还有一个问题,前端的需要的是一个"1,2,3,4,5"的字符串,取出数据库中的数据为json字符串,所以需要再次转换成前端需要的格式,方便页面展示。二.原创 2020-12-28 17:49:06 · 602 阅读 · 0 评论 -
Java中List集合去除重复数据的多种方法
循环list中的所有元素然后删除重复public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1; i++ ) { for ( int j = list.size()-1 ; j > i; j-- ) { if (list.get(j).equals(list.get(i))) { .原创 2020-12-28 16:13:50 · 163 阅读 · 0 评论 -
ArrayUtils常用方法的基本操作
1. 引入pom依赖导入commons-lang.jar,用的是3.11版本推荐使用pom引入<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --><dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId原创 2020-12-30 14:49:04 · 593 阅读 · 0 评论 -
使用java8 api方法list.stream().map().collect(Collectors.toList())
使用java8 api方法list.stream().map().collect(Collectors.toList())userList User实体类对象集合User 实体类getId 实体类属性的get方法List<int> ids= userList.stream().map(User::getId).collect(Collectors.toList())把数据放到map根据user.getId(条件) 循环 在转换成listList<int> ids= us原创 2021-01-07 16:07:17 · 1534 阅读 · 0 评论 -
将一个实体类赋值给另一个实体类
1. 自己写工具类下面这个类便可以帮我们实现。在Main方法中我给AppointmentOrderParam类初始化并赋值,然后想把这个类的值能够自动赋值给另一个类AppointmentOrder,这两个类大部分属性是一样的,有个别不一样。赋值有个需要注意的地方,那就是在AppointmentOrderParam类中的apointmentTime字段类型是String,而AppointmentOrder类中的同名字段apointmentTime是个Date类型,像这样的情况就不要让它赋值了,跳过即可。原创 2021-01-19 16:00:28 · 6638 阅读 · 1 评论