Collection接口方法详解
接口方法一览
以下方法均以ArrayList为例,演示方法的用法,对于实现了Collection接口的其他实现类可以此类推
1Collection<String> arrayList = new ArrayList<>();
add
往Collection集合中添加一个元素
添加成功返回true,添加失败返回false
123// 向集合中添加一个"ikun"元素System.out.println(arrayList.add("ikun"));// 输出结果:true
addAll
将一个集合中的所有元素(这里称为集合A)添加进另一个集合中(这里称为集合B)
添加成功返回true,添加失败返回false
这个操作不会影响集合A中的元素
1234567891011121314151617// 新建ArrayList集合A和BCollection<String> A = new ArrayList<>();Collection<String> B = new ArrayList&l ...
Collections工具类常用方法详解
总体方法一览
sort
这个方法可以实现List集合的排序
有两个重载形式
public static <T extends Comparable<? super T>> void sort(List<T> list)
默认的排序方法,是升序排序
public static <T> void sort(List<T> list, Comparator<? super T> c)
该方法可以自定义排序规则
默认排序方法
12345678910111213141516// 定义一个ArrayList集合ArrayList<Integer> arrayList = new ArrayList<>();// 随机生成10个0~99的整数ArrayList集合Random random = new Random();for (int i = 0; i < 10; i++) { arrayList.add(random.nextInt(100));}// 输 ...
Calendar类常用方法详解
Calendar是java的第二代日期类,而且是一个抽象类,并且构造器私有化,只能通过getInstance来获取实例
getInstance
获取Calendar实例
有四种重载形式
123// 获取Calendar对象实例// 获取当前时间的Calendar对象Calendar calendar = Calendar.getInstance();
getTime
将Calendar实例转换成Date对象
public final Date getTime()
12Calendar calendar = Calendar.getInstance();Date date = calendar.getTime();
toInstant
将Calendar实例转换为Instant对象
public final Instant toInstant()
12Calendar calendar = Calendar.getInstance();Instant instant = calendar.toInstant();
get
获取Calendar某个字段的值,返回月的时候,是从0开 ...
BufferedReader和BufferedWriter常用方法详解
BufferedReader
准备工作
准备一个news.txt文件,内容如下,字符编码为UTF8
常用构造器
public BufferedReader(Reader in)
传入一个Reader或者Reader子类对象,创建使用默认大小8192的输入缓冲区的缓冲字符输入流
public BufferedReader(Reader in, int sz)
传入一个Reader或者Reader子类对象,创建使用指定大小的输入缓冲区的缓冲字符输入流
12// 构造器1BufferedReader bufferedReader = new BufferedReader(new FileReader("E://news.txt"));
12// 构造器2BufferedReader bufferedReader = new BufferedReader(new FileReader("E://news.txt"), 8192);
close
关闭BufferedReader流对象,值得一提的是,这里关闭外部流对象Buffer ...
BigInteger和BigDecimal常用方法详解
BigInteger
add
实现两个BigInteger相加,返回相加后的结果,不影响原来的数据
public BigInteger add(BigInteger val)
1234567891011BigInteger num1 = new BigInteger("1");BigInteger num2 = new BigInteger("2");// num3 = num1 + num2BigInteger num3 = num1.add(num2);System.out.println("num1 = " + num1);System.out.println("num2 = " + num2);System.out.println("num3 = " + num3);// 输出结果:// num1 = 1// num2 = 2// num3 = 3
subtract
实现两个BigInteger相减,返回相减后的结果,不影响原来的数据
public BigInteger s ...
Arrays常用方法详解
总体方法一览
asList
这个方法可以将传入的多个数字转换成一个List集合
注意,这里得到的List只适合遍历,不能增删,否则会报UnsupportedOperationException异常
参考文章:Arrays.asList() 详解_开着奥迪卖小猪的博客-CSDN博客_arrays.aslist
12345678// 将{1, 2, 3}装换成一个List集合List<Integer> arrayList = Arrays.asList(1, 2, 3);// 遍历List集合for (Integer integer : arrayList) { System.out.print(integer + " ");}// 结果// 1 2 3
sort
功能划分
Arrays类给我们提供了非常多的sort重载方法
根据功能划分可以分为四组
第一组:对整个数组进行默认排序,是升序排序
第二组:对整个数组进行自定义排序
第三组:指定数组的排序范围进行默认排序,也是升序排序
第四组:指定数组的排序范围进 ...
解决maven工程导入依赖慢的问题
解决方法:在maven的配置文件settings.xml中配置阿里云镜像
第一步:打开maven的配置文件settings.xml
第二步:在settings.xml中加入阿里云镜像
12345678<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>
踩坑:增强for循环
问题引出
事情的起因是我用增强for循环为数组赋值,发现赋值一直无效
123456789101112Random random = new Random();int[] arrays = new int[10];// 使用增强for循环赋值for (int array : arrays) { array = random.nextInt(100);}// 使用增强for循环遍历for (int array : arrays) { System.out.print(array + " ");}// 输出结果// 0 0 0 0 0 0 0 0 0 0
对,无论试了多少次,以上结果还是10个0
参考文章,恍然大悟
于是参考了这篇文章,解答了我的困惑
java增强型for报错_一个Java增强型for循环的易犯错误,你注意到了吗?_就浙就浙就浙的博客-CSDN博客
总结失败原因
基本数据类型数组情况
使用增强for循环赋值数组失败原因
123for (int array : arrays) { array = r ...
本地springboot程序连接服务器数据库失败记录
事件起因
时间:2022.10.16
在开发自己的个人博客项目过程中,想要将本地数据库换成服务器上的数据库,于是将url换成了服务器上的url,其他地方不变
接着重启springboot程序,访问数据库服务时出现了以下报错
核心信息有以下几句
1com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
1The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
1Caused by: java.net.ConnectException: Connection timed out: connect
大概意思是连接出了问题,会话连接失败
springboot没有接收到服务器mysql发来的数据包
抛异常:连接超时
排查问题
账号或者密码错误?
以为是账号密码输入错了,于是在命令行连 ...
包装类常用方法详解
八大包装类
java有八种包装类
基本数据类型
包装类
boolean
Boolean
char
Character
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
装箱和拆箱
基本概念
装箱:基本数据类型转换成对应的包装类
拆箱:包装类转换成对应的基本数据类型
手动装箱和手动拆箱
手动装箱
有两种方式
通过Integer构造方法
通过Integer的valueOf方法
123456789/**手动装箱*/int num = 10;Integer num1 = new Integer(num);Integer num2 = Integer.valueOf(num);System.out.println("num1 = " + num1);System.out.println("num2 = " + num2);// 结果:// num1 = 10// num2 = 10
手动拆箱
使用in ...