
Java基础
Rick1993
这个作者很懒,什么都没留下…
展开
-
遇到的java.lang.ClassCastException问题
说明nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。nodeUserTaskDTO.getCcDetails()集合里面的对象是JSONObject,根本不是WfDefCCDTO对象。提示:java.lang.ClassCastException,然后我报错提示定位到代码,他是一个for循环,眼看着没问题啊。,查看代码发现:集合对象被转换成JSON对象了。原创 2023-04-08 15:51:14 · 429 阅读 · 0 评论 -
Java中枚举类的ordinal()方法
定义一个枚举类:enum Season { SPRING, SUMMER, AUTUMN, WINTER}Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比如本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别是0,1,2,3。在某些情况下,我们需要根据这个序数生成我们需要的枚举对象。我们可以使用枚举类型的values()方法做到:...原创 2020-01-14 17:57:37 · 18793 阅读 · 0 评论 -
Java8的reduce使用
public static void main(String[] args) { Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7}); //求集合元素之和 Integer result = stream.reduce(0, Integer:...原创 2019-12-31 15:50:03 · 786 阅读 · 0 评论 -
Java8 lambda表达式 list操作:转map,分组、过滤、求和、最值、排序、去重
演示代码如下:package com.dalingjia.LambdaStream;import lombok.Data;import java.math.BigDecimal;/** * Created by Administrator on 2018/7/9. */@Datapublic class User { private Integer id; ...原创 2019-11-23 15:26:58 · 3560 阅读 · 1 评论 -
Session和Cookie的区别
Session工作原理:浏览器第一次访问服务器的时候,服务器会在内存中创建一个session对象并返回一个Jsession=ID的值;在浏览器端会创建一个key=Jsession,value=ID的Cookie对象;浏览器在第二次访问服务器的时候会携带该Cookie信息,服务器从请求中提取出JSession=ID,并和保存的所有JSessionID进行对比;如果该Jsession=Id的se...原创 2019-11-04 10:24:12 · 113 阅读 · 0 评论 -
@RequestBody请求使用postman调用
@RequestBody的传参格式:@RequestMapping(value = "query.do", method = { RequestMethod.POST }) public JsonHeaderWrapper<Object> query(HttpServletRequest request,@RequestBody OpenApiReqVO<Map<Str...原创 2019-07-23 19:13:38 · 5614 阅读 · 0 评论 -
Comparable和Comparator的区别
Comparable和Comparator都是用于比较数据大小的,Comparable位于java.lang包下,实现该接口需要重写compareTo方法;Comparator位于java.util包下,实现该接口需要重写compare方法。Comparable接口只有一个方法:public int compareTo(T o);调用此方法的对象,也就是this和o进行比较,若返回值大于0...原创 2019-07-07 01:49:19 · 141 阅读 · 0 评论 -
线程的基础知识(五)之线程通信
传统的线程通信当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,单Java也提供了一些机制来保证线程协调运行。为了实现这一机制,可以借助Object类提供的wait(),notify()和notifyAll()三个方法:wait() :导致当前线程等待,直到其他线程调用该同步监视器的notify()方法或notifyAll()方法来唤醒该线程。调用wait...原创 2019-07-13 18:16:05 · 143 阅读 · 0 评论 -
JetCache快速入门小案例
本文是基于SpringBoot的小案例,废话不多说,直接上代码:pom依赖:<dependency> <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis</artifactId> <version>2.5.12&...原创 2019-07-03 18:41:03 · 1547 阅读 · 0 评论 -
如何实现大整数相加
算法核心:将大整数的每一位都存放在整形数组中,然后对数组中的每一位进行相加,若有进位,则将进位放到后一位数组元素中。参考博客:https://mp.weixin.qq.com/s/GXclPfm_L2kIGAjgLSPX5g具体算法如下:package com.dalingjia.Interview.array;import java.math.BigDecimal;public c...原创 2019-05-12 15:31:34 · 481 阅读 · 0 评论 -
深入学习jdk动态代理
何为代理代理,即代替主角完成一些额外的事情,例如,经纪人作为明星的代理人和出资洽谈片酬,排期等,而正真参与拍戏的还是明星本人,明星拍完戏后,再有经纪人代理明星去清理片酬等。Java中的代理机制就是在目标方法执行前后执行一些额外的操作,例如安全检查,记录日志等。java中的代理分为静态代理和动态代理。静态代理直接上代码,模拟登陆操作:public interface LoginServ...原创 2019-05-24 15:33:37 · 173 阅读 · 0 评论 -
Java内省beans包的使用
内省(Introspector)是Java语言对Bean类属性,事件的一种缺省处理方法在接口调用中常常需要对参数进行封装到map中,这时Introspector就派上了用场。代码如下:package com.daling.util;import com.daling.bean.User;import com.google.common.collect.Maps;import jav...原创 2019-03-18 12:06:03 · 367 阅读 · 0 评论 -
手动实现ArrayList
创建一个MyArrayList,实现ArrayList中的几个方法 代码片段如下:package com.dalingjia.collection.list;/** * ArrayList的简单实现(手写) * */public class MyArrayList { private Object[] elementData; //底层数组 ...原创 2018-11-19 23:23:51 · 312 阅读 · 0 评论 -
基于TCP协议的网络编程
TCP/IP通信协议是一种可靠地网络协议,他在通信的两端各建立一个socket,从而在通信的两端建立网络通信链路。Java对基于TCP协议的网络通信提供了良好的封装,java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信。...原创 2019-01-01 13:11:01 · 452 阅读 · 0 评论 -
happens-before简介
happens-before用来阐述操作之间的可见性。原创 2019-01-11 18:26:07 · 227 阅读 · 4 评论 -
手写Integer.parseInt()方法
源码也不是很复杂,除了那个Integer.MAX_VALUE,下面是简化版的手写parseInt()方法。在我看来最核心的代码是:digit = Character.digit(s.charAt(i++), radix);这在平时很少用到,另外那个while循环理解起来没什么难度。package com.dalingjia.math;public class MyInteger { ...原创 2019-01-13 22:56:13 · 754 阅读 · 0 评论 -
令牌桶限流之RateLimiter
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-01-21 18:08:00 · 991 阅读 · 2 评论 -
红黑树详解以及手写红黑树
在了解红黑树之前,有必要了解一下二叉查找树:二叉查找树有什么特点:左子树上的所有节点的值均小于等于它的根节点的值;右子树上的所有节点的值均大于等于它的根节点的值;左,右子树也分别为二叉排序树。红黑树是一种自平衡的二叉查找树,除了符合二叉查找树的基本特性外,还具有一下特性:根节点是黑色;节点只能为红色和黑色;每个叶子节点都是黑色的空节点(NIL节点);每个红节点的两个子节点必...原创 2019-02-01 17:48:21 · 2293 阅读 · 0 评论 -
手写String的split()方法以及源码分析
String的split()方法分三种情况:regex只有一位,且不为列出的特殊字符;regex有两位,第一位位转义字符且第二位不是数字和字母;最后一种情况就是正则表达式去拆分字符串。public String[] split(String regex, int limit) { /* fastpath if the regex is a (1)one...原创 2019-01-28 12:13:25 · 1429 阅读 · 2 评论 -
虚拟机对象是否存活
在堆里面存放真java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是确定这些对象之中哪些还“存活”着,哪些已经“死去”。可达性分析算法:这个算法的基本思路:通过一系列的称为“GC Roots&amp;amp;amp;amp;amp;amp;quot;的对象作为起始点,从这个结点开始向下搜索,搜索原创 2019-02-21 11:07:32 · 141 阅读 · 0 评论