
Java基础
文章平均质量分 65
wtopps
当你的才华满足不了你的野心时,你应该滚去学习
展开
-
CompletableFuture你需要知道的事情
CompletableFuture 是 Java 8 引入的一个强大的异步编程工具,它实现了 Future 和 CompletionStage 接口,提供了丰富的异步操作和组合能力。支持显式完成(手动设置结果)提供丰富的回调机制支持链式调用和组合操作内置异常处理机制支持多个 CompletableFuture 的组合回到上面的问题,如果使用CompletableFuture如何实现?下面我们来一起了解一下CompletableFuture的细节。原创 2025-03-26 16:14:55 · 782 阅读 · 0 评论 -
Git 撤销push的commit操作
问题:我在Git中提交了错误的文件。我该如何撤销那一次commit呢?原问题地址:How do I undo the most recent local commits in Git?解决办法:$ git commit -m "Something terribly misguided" (1)$ git reset HEAD~ ...原创 2019-05-17 14:06:13 · 3229 阅读 · 1 评论 -
Java判断日期在指定时间段中的第几周
/** * 给定开始时间和结束时间,判断当前时间是第几周,七天为一周,按照自然周进行计算 * * @param startTime * @return */public static int getWeek(long startTime, long currentTime, long endTime) { if (currentTime < startTime || endTime < startTime) { return 0; } Cal原创 2021-07-28 15:33:26 · 2487 阅读 · 0 评论 -
Java date format 时间格式化
/** 输出格式: 2006-4-16 */ s = DateFormat.getDateInstance().format(d); System.out.println(s); /** 输出格式: 2006-4-16 */ s = DateFormat.getDateInstance(DateFormat.DEFAU转载 2015-04-15 16:22:07 · 515 阅读 · 0 评论 -
java反射详解
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名?123456789101112131415package Refl转载 2015-03-07 08:45:17 · 465 阅读 · 0 评论 -
同步和异步的区别(转载)
答案一:1.异步传输 通常,异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并以此实现数据传输同步。所谓异步传输是指字符与字符(一个字符结束到下一个字符开始)之间的时间间隔是可变的,并不需要严格地限制它们的时间关系。起始位对应于二进制值 0,以低电平表示,占用 1 位宽度。停止位对应于二进制值 1,以高电平表示,占用 1~2转载 2014-10-09 18:21:38 · 701 阅读 · 0 评论 -
Java ThreadPoolExecutor线程池概述
前言在互联网的开发场景下,很多业务场景下我们需要使用到多线程的技术,从 Java 5 开始,Java 提供了自己的线程池,线程池就是一个线程的容器,每次只执行额定数量的线程。java.util.concurrent包中提供了ThreadPoolExecutor类来管理线程,本文将介绍一下ThreadPoolExecutor类的使用。为什么要使用线程池?在执行一个异步任务或并发任...原创 2018-06-13 17:07:47 · 10408 阅读 · 3 评论 -
JVM内存结构 VS Java内存模型 VS Java对象模型
前言Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官...转载 2018-07-03 19:18:51 · 191 阅读 · 0 评论 -
Java Json 数据下划线与驼峰格式进行相互转换
概述今天遇见一个需求,需要对json数据进行下划线与驼峰格式之间进行转换,在Fastjson、Jackson、Gson都提供了转换的方式,在这里进行一下列举。Fastjson// 生产环境中,config要做singleton处理,要不然会存在性能问题SerializeConfig config = new SerializeConfig(); config.propertyNam...原创 2018-07-17 19:39:42 · 42719 阅读 · 6 评论 -
FastJSON判断JSON字符串是JSONObject或JSONArray
背景FastJSON没有提供直接判断一个JSON字符串是JSONObject或JSONArray的方法,因此,对于一个未知的JSON串,我们需要自行判断。方法String jsonStr = "{\"aaa\" : \"111\"}";Object object = JSON.parse(jsonStr);if (object instanceof JSONObject) { JSON...原创 2018-11-09 17:22:50 · 23166 阅读 · 6 评论 -
FastJson JSONObject 转换后key排序问题
问题描述在使用fastjson时,使用JSONObject.parseObject()对一个json的字符串进行转换成JSONObject时,默认的情况下,key的排列顺序是无需的,但是某些场景下,我们是希望key可以有序的排列。解决办法JSONObject.parseObject()中,支持Feature参数的传入,可以指定Feature,控制key的排序。当我们希望转换后的key的顺序...原创 2019-07-09 19:51:17 · 11511 阅读 · 0 评论 -
10道极为棘手的Java面试题
10道题目如下:1.为什么等待和通知是在 Object 类而不是 Thread 中声明的?2.为什么Java中不支持多重继承?3.为什么Java不支持运算符重载?4.为什么 String 在 Java 中是不可变的?5.为什么 char 数组比 Java 中的 String 更适合存储密码?6.如何使用双重检查锁定在 Java 中创建线程安全的单例?7.编写 Java 程序时, 如...转载 2019-09-03 14:01:57 · 331 阅读 · 0 评论 -
Collection框架解析
Collection框架集合框架(CollectionFramework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等.集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等.集合框架类似编程中经常用到的工具类,使得编码这专注转载 2015-04-30 11:19:01 · 519 阅读 · 0 评论 -
Java多种排序算法
public class sort { /** * @param args */ public static void main(String[] args) { int[] data = {8,4,9,2,1,6,3,7,5}; for (int i = 0; i < data.length; i++) { System.out.print(data[i]+" ");转载 2015-09-20 11:08:35 · 445 阅读 · 0 评论 -
Java获取某个月的天数
不同的月可能有不同的天数, 有的是30天, 有的是31天, 对于二月的天数判断还得先判断是平年还是闰年, 所以如果自己写代码判断会比较麻烦, 其实java.util.Calendar中已经提供了获取天数的方法, 代码如下:package top.itart;import java.text.ParseException;import java.text.SimpleDateFor转载 2015-09-07 10:27:01 · 62308 阅读 · 7 评论 -
HashMap是无序序列
一、 说明HashMap是基于哈希表Map的实现。HashMap的设计初衷主要是为了解决键值(key-value)对应的关联的,HashMap的优势是可以很快的根据键(key)找到该键对应的值(value),但是我们在使用的过程中需要注意一下,HashMap是一种无序的存储结构。HashMap的实现是假定元素是放在一个圆形的环上,每次put进来的元素根据其hashCode计算该元素在圆环上转载 2014-10-10 20:11:40 · 795 阅读 · 0 评论 -
abstract class 与 interface解析
在Java语言中,abstract class和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的转载 2015-08-28 22:52:47 · 368 阅读 · 0 评论 -
Java Calendar类的时间操作
Java Calendar 类时间操作,这也许是创建日历和管理最简单的一个方案,示范代码很简单。 演示了获取时间,日期时间的累加和累减,以及比较。注意事项: Calendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。 而 Calendar.DAY_OF_WEEK 定义和值如下: Calendar.SUNDAY = 1 Calendar.MONDAY转载 2016-12-13 09:35:30 · 730 阅读 · 0 评论 -
Java垃圾回收浅谈
什么是Java垃圾回收机制?Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。System.gc()Runtime.getRuntime().gc() 上面的原创 2017-01-13 14:33:03 · 789 阅读 · 0 评论 -
使用Try-with-resources自动关闭资源
Try-with-resourcesTry-with-resources是Java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源。转载 2017-05-03 11:17:44 · 12776 阅读 · 0 评论 -
Java读取Properties文件
public class PropertieUtil { private static Logger logger = Logger.getLogger(PropertieUtil.class); private PropertieUtil() { } /** * 读取配置文件某属性 */ public static String read转载 2016-10-09 09:17:18 · 402 阅读 · 0 评论 -
Java高精度运算工具类
在Java中,由于Java的简单类型不能精确的对浮点数进行运算,这个工具类提供精的浮点运算,包括加减乘除和四舍五入运算。原创 2016-09-28 14:27:48 · 729 阅读 · 0 评论 -
Java中Vector和ArrayList解析
在The Java Programming Language (Addison-Wesley, June 2000) 中Ken Arnold, James Gosling, 和 David Holmes 是这样描述Vector的,它是更ArrayList类似的一个东西,所以从API的观点来看,它们俩是很相似的。但是,它们之间还是有些微的差别的。 1. 同步性 Vecto转载 2016-05-25 16:32:24 · 732 阅读 · 0 评论 -
java中super和this关键字解析
this关键字:"this",作为一个特殊的关键字,它的规则如下: 1、可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。 2、可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身;它有动态类型,就是当前这个对象转载 2015-10-19 15:34:01 · 978 阅读 · 0 评论 -
JAVA多态的事例
以下是关于JAVA多态的小事例:class A ...{ public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A an原创 2015-09-08 10:54:38 · 522 阅读 · 0 评论