Java SE
文章平均质量分 75
欧阳方超
一份书写一份理解,一份记录一份沉淀,回首时这些是美丽的风景,若能不经意间帮到正在路上的你,吾心备喜焉!Java、Linux运维、大数据。
展开
-
Java中序列化与反序列化(五)——static字段
在Java中,静态字段(static fields)是与类本身相关联的,而不是与类的任何特定实例相关联。这意味着静态字段在类加载时初始化,并且在整个应用程序的生命周期内保持一个唯一的副本。原创 2024-06-18 15:07:30 · 660 阅读 · 0 评论 -
Java异常(二):SneakyThrows注解的使用
@SneakyThrows注解是一个方便的工具,可以简化Java异常处理的代码编写。通过使用它,可以将受检异常转换为非受检异常,减少了冗长的异常处理代码。原创 2023-10-26 06:30:00 · 538 阅读 · 0 评论 -
Java异常(一):自定义异常
自定义异常提供了更具体的错误消息、更灵活的异常处理逻辑以及更好的代码可读性和可维护性。合理地使用自定义异常可以提高Java应用程序的质量和健壮性。原创 2023-10-18 07:00:00 · 1022 阅读 · 0 评论 -
认识两个join()方法
对 Java 中的 String 类和 Apache Commons Lang 库中的 StringUtils 类的 join() 方法进行了功能对比和使用介绍。原创 2023-09-19 06:00:00 · 138 阅读 · 0 评论 -
Java异步编程(一):CompletableFuture初步介绍
大家好,我是欧阳方超。本次就Java中CompletableFuture做初步介绍。这就是CompletableFuture的基本思想,它允许我们提交异步任务,并注册回调,当异步任务完成时,回调会自动触发。我们把一系列的异步任务和回调串联起来,就可以实现复杂的异步流程控制。我们下次见。原创 2023-05-30 21:46:12 · 624 阅读 · 0 评论 -
Java中的内存泄露、内存溢出与栈溢出
内存泄漏、内存溢出和栈溢出都是程序中常见的内存问题,它们都会导致程序运行的异常和不稳定。为了避免这些问题,我们需要在编程中注意及时释放不再使用的资源和对象引用,避免内存分配过多,优化算法和代码结构等。原创 2023-05-01 21:39:04 · 1743 阅读 · 1 评论 -
Java中的序列化与反序列化——Externalizable(三)
Externalizable接口提供了一种比简单的Serializable更灵活和可控的序列化机制。它使您可以在需要反序列化时采取不同的行动,而不是简单地遵循官方的序列化方法。原创 2023-04-30 22:32:28 · 616 阅读 · 0 评论 -
Java中的序列化与反序列化——transient(二)
在Java中,transient关键字用于标记一个类的成员变量,表示这个变量在序列化过程中不需要被保存。这通常用于标记一些敏感信息,例如密码或密钥,以确保它们不会在序列化后泄露原创 2023-04-27 10:06:02 · 676 阅读 · 0 评论 -
Java中的序列化与反序列化(一)
所以,为了避免反序列失败,为序列化类新增属性时,建议不要修改 serialVersionUID 字段的值,当然如果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。关于序列化和反序列化还有很多其他内容,我们择日继续。下回见。原创 2023-04-21 21:59:00 · 726 阅读 · 0 评论 -
Java集合元素中中文的排序
需要说明的是,以上是在List中直接存放多个字符串后进行排序,如果是对象中某个属性是中文,将这类对象放到List中,也是能够进行排序的。原创 2022-11-26 17:46:21 · 2570 阅读 · 0 评论 -
Java交换列表中两个元素的位置-Collections.swap()使用和一次误用
这样写完后代码都提了,转念一想显然是不对的原创 2022-11-25 21:11:28 · 1108 阅读 · 0 评论 -
Java中的方法引用
当想要创建的Lambda体已经有实现方法时,这时可以使用方法引用。Lambda是匿名类的简化写法,方法引用是Lambda的简化写法,如同Lambda表达式创建了函数式接口的实例一样,方法引用也是创建了某个函数式接口的实例。原创 2022-10-30 20:14:17 · 649 阅读 · 0 评论 -
集合与字符串的判空
字符串的判空问题原创 2022-08-26 20:31:48 · 290 阅读 · 0 评论 -
Java反射
@[TOC]反射反射详解reflect所谓反射是运行期间发现更多的类及其属性的能力由于主要是开发软件工具的人员而不是编写应用程序的人员对这项功能感兴趣(核心卷一基础知识中提到的)程序运行期间,java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。每个类的运行时reflecthttps://juejin.im/post/6844904047120482318https://blog.csdn.net/zhengzhaoyang122/article/details/1015606原创 2020-09-16 08:11:36 · 77 阅读 · 1 评论 -
Java中instanceof和isInstance()区别详解
这里写自定义目录标题它们都是用来判断对象的类型的,但是当需要动态地判断对象的类型时instanceof就无能为力了,而isInstance()方法却能发挥作用;instanceof isInstance()方法instanceof是Java中的操作符,其作用是该操作符判断左边的对象是否是它右边类的实例,返回值boolean类型isInstance()是Class类的一个方法public boolean isInstance(Object obj)该方法的作用是在run time判断指定的obj对原创 2020-09-16 08:08:33 · 1087 阅读 · 0 评论 -
Java操作集合时在for循环中优雅地防御null
操作集合时优雅地防御null1、问题2、解决办法3、总结1、问题在Java中遍历集合时,为了避免出现java.lang.NullPointerException问题,经常需要实现判断集合对象是否为null:if (someList != null) { for (Object temp : someList) { // do whatever }}或者if (someList == null) { return; // Or throw exceptio原创 2020-06-07 17:33:17 · 1310 阅读 · 0 评论 -
正则表达式使用场景
概述正则表达式有很多使用场景,邮箱、手机号、密码强度等的验证,下面是一个可以验证密码是是否同时包含大小写、数字、特殊字符且长度在8至16位的正则表达式,测试、评论和使用。"^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]))^.{8,16}$"...原创 2020-05-07 13:11:00 · 1249 阅读 · 0 评论 -
Java String.valueOf()方法——出你意料的"null"字符串
String.valueOf()方法当传入的参数为一个引用且该引用引用的是null时,方法返回字符串"null",此时若用StringUtils.isBlank()这类方法判断时将返回true,因为此时调用的valueOf(Object obj)方法,该方法的源码如下(jdk1.8.0_131中String的部分源码):/** * Returns the string rep...原创 2018-05-28 14:39:42 · 16271 阅读 · 4 评论 -
java中Comparable接口和Comparator接口的使用
把多个对象放进数组,欲对该对象数组进行排序,需要前提条件(若是基本数据类型的数组可直接用Arrays.sort()对其进行排序),要么数组中的对象所属的类实现了Comparable接口并覆写CompareTo()方法,直接执行Arrays.sort(数组)即可排序,要么单独定制一个排序规则类,该类实现comparator接口并覆写compare()方法,执行Arrays.sort(数组, 排序规则原创 2015-12-01 17:51:27 · 666 阅读 · 0 评论 -
java实现字符串逆向输出(续)
这一博文中主要想记录一下,String、StringBuffer、StringBuilder的用法。String类创建的对象不可被改变,StringBuffer创建的对象可被改变,最终的对象可由toString()方法转换为一个String对象;StringBuffer是线程安全的。StringBuilder是jdk1.5新增的类,性能比StringBuffer略高。将单词或句子实现“字母原创 2016-01-12 14:17:19 · 2616 阅读 · 0 评论 -
java实现字符串的逆向输出——单词保持原样和单词也逆向输出
上篇博文中的代码实现了整个字符串的逆向输出,但是对于单个单词来讲保持原有字母顺序不变,这次的代码可以实现字符串的完全逆向输出,单个单词的字母顺序也反转了,而且是七种方式,参考内容在此,代码如下:import java.util.Stack;public class A{ public static void main(String[] args) { System.out.prin原创 2015-12-03 22:11:56 · 981 阅读 · 0 评论 -
java swing的默人LookAndFeel
截止到java 8,swing支持五种类型的LookAndFeel风格(不包括第三方提供的),当然第三方个人或组织可能也提供了其他类型的LookAndFeel风格,swing默认是一名成为Metal的风格,下面的程序展示了如何通过按钮在五种风格间进行切换。import javax.swing.UIManager;import javax.swing.JButton;import javax原创 2016-02-24 19:06:04 · 777 阅读 · 0 评论 -
Java中DecimalFormat类以及Math类下ceil()和floor()简单用法
DecimalFormat类的作用是完成数字格式化的,比如应该取几位小数原创 2016-09-30 16:22:32 · 1973 阅读 · 0 评论 -
Java程序读取excel再分析——纠正前篇错误
前几天遇到了java程序读取excel时出现读取的行数与在excel中实际填写的行数不一致的情况,并且之前那篇文章中所分析的原因纯属猜测,现在看来完全是错误的。如果再出现这种情况,可以尝试这样解决:如果excel的某行确实没有肉眼可见的数据,而程序却依然读到的改行,可以用excel的删除整行的方式删除该行,这样程序读不到该行了。当然,即便如此,我的分析也并非充分的,以后如果遇到其他能解决这种问题的原创 2016-11-10 09:10:51 · 609 阅读 · 0 评论 -
""和null,傻傻分不清楚
最近对java.util.List这个类进行操作时出现一些与预期不符合的现象,程序中调用一个方法getXxx(),该方法返回List类型对象,接下来有一个if语句,代码片段如下:List list = Xxx.getXxx();if (list != null) return list.get(0); 执行后竟然出现了java.lang.IndexOutOfBoundsExcep原创 2016-11-30 22:09:11 · 424 阅读 · 0 评论 -
Java字符串分隔几个特例
Java String类中有一个split()方法,该方法能按指定的正则表达式把字符串分隔开,并返回一个包含分隔后的字符串的数组,但是事物有其一般规律也有特殊规律,Java中一般性的字符串分隔就不必多说了,有些字符(比如. \ , | *等)在正则表达式中他们自身就有特殊含义,所以在匹配他们的时候需要转义;还有,平时用的较多的是split()只接收一个参数的情况,接收两个参数的情况用的较少,下面是原创 2017-05-20 14:27:17 · 422 阅读 · 0 评论 -
Java中用DateFormat解析日期
从字符串形式的日期解析为Date类型日期是常用的操作,之前呢要完成这样的操作,总是先使用SimpleDateFormat构造出一个格式化器,然后调用parse()方法并将待解析的字符串传入,具体如下:package com.liu;import java.text.ParseException;import java.text.SimpleDateFormat;public class原创 2017-05-21 17:46:21 · 5832 阅读 · 0 评论 -
Java中String、StringBuffer与StringBuilder
String是immutable(不可变)的。StringBuffer:字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑最好使用StringBuffer,如果想转成String类型,可以调用StringBuffer的toString()方法。StringBuilder:字符串变量(非线程安全)。在内部,StringBuilder对象被当作是一原创 2017-08-31 23:12:34 · 182 阅读 · 0 评论 -
Java中使用String的format函数时遇到的异常
想抛出一个400的异常,提示为String.format("根据id=%d查询信息失败", id),无奈一直出错:d != java.lang.String,原来我上面定义的id为String类型,用%d是无法显示的。原创 2017-09-02 19:02:56 · 3008 阅读 · 0 评论 -
Java使用枚举转换星期几到对应汉字
有这样一个需求,在页面中选择周一至之日(复选框),保存进数据库的形式是:如果哪天没选中就是0,如果哪天选中了就是相应的数字。比如,选中了周一,周二,周四,周六,保存时的一串数字为1204060,与此同时页面种要显示选中的日期为:周一至周二、周四、周六。可用如下的代码实现import java.util.*;public class GetWeekDays { pub原创 2017-09-30 09:39:59 · 5649 阅读 · 3 评论 -
Java中File的基本操作
下面的程序可以完成选择创建一个文件或目录的功能(用户输入1表示要创建文件,输入2表示要创建目录),如果所要创建的文件或目录已经存在,则输出文件或目录已经存在,也能输出文件或目录所在分区磁盘使用情况。同时创建文件或目录存在以下操作:(1)创建文件时(用createNewFile()方法):若待创建的文件所在的文件夹不存在,则会报错(java.io.IOException: 系统找不到原创 2017-09-30 14:22:03 · 524 阅读 · 0 评论 -
Java流之读取标准流的输入
与程序交互时,从键盘获取输入内容是常有之事,这时可以考虑如下两种方式实现输入,使用Scanner类,或者使用BufferedReader。示例一,使用Scanner扫描键盘输入:import java.util.Scanner;public class ScannerTest { public static void main(String[] args) { ...原创 2018-02-27 11:13:36 · 2689 阅读 · 0 评论 -
stackoverflow上SegFault对System.out.flush()的解释
平时见System.out.flush()的次数不多,所以比较生疏,今天在一程序中见到时,想不明白它是干什么用的,这不,一下搜到了stackoverflow,自感上面网友解释地的挺好的,故在此做一下整理,希望以后能在自己的开发中使用这一知识点。 问题应该由下面的程序引出,下面程序中主函数的while循环里有这样一条语句System.out.flush(),把它注释掉与否对执行结果没有翻译 2015-12-03 19:39:57 · 1180 阅读 · 0 评论