随笔分类 -  从零开始Java学习日记

java-java
摘要:Optional概述 Optional 是个容器:它可以保存类型T的value,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测,很好地解决了空指针异常处理的问题,比如可以使用isPresent()方法判断value是否为null,使用get()方法获取val 阅读全文
posted @ 2021-01-04 00:34 天乔巴夏丶 阅读(1067) 评论(2) 推荐(2) 编辑
摘要:NIO是啥? NIO是Java从JDK1.4开始引入的一系列改进版输入输出处理手段,也就是New IO,简称NIO,也有说法叫NonBlocking IO,是同步非阻塞式的IO模型,准确地说它支持阻塞非阻塞两种模式。 笔者在NIO、BIO、AIO、同步异步、阻塞非阻塞傻傻分不清楚?一文中详细总结了同 阅读全文
posted @ 2021-01-03 14:16 天乔巴夏丶 阅读(490) 评论(0) 推荐(1) 编辑
摘要:以下内容摘自:敖丙肝了一个月的Netty知识点 阻塞与非阻塞 阻塞和非阻塞操作是针对发起的IO请求操作后是否立刻返回一个标志信息而不让请求线程等待,当数据准备未完成时,请求线程的状态: 阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。 非阻塞:无论数据是否准备好,都会 阅读全文
posted @ 2021-01-02 16:53 天乔巴夏丶 阅读(428) 评论(0) 推荐(0) 编辑
摘要:本篇要点 简单描述浮点数十进制转二进制精度丢失的原因。 介绍几种创建BigDecimal方式的区别。 整理了高精度计算的工具类。 学习了阿里巴巴Java开发手册关于BigDecimal比较相等的规定。 经典问题:浮点数精度丢失 精度丢失的问题是在其他计算机语言中也都会出现,float和double类 阅读全文
posted @ 2020-12-28 22:36 天乔巴夏丶 阅读(2139) 评论(3) 推荐(4) 编辑
摘要:Quartz是什么 Quartz是一个功能强大的开源任务调度库,几乎可以集成到任何Java应用程序中,无论是超小型的独立应用还是超大型电子商务系统。 它常用于企业级应用中: Driving Process Workflow:当新订单下达,可以安排一个30分钟内触发的任务,检查订单状态。 System 阅读全文
posted @ 2020-12-26 14:47 天乔巴夏丶 阅读(2637) 评论(0) 推荐(4) 编辑
摘要:什么是流?流表示任何有能力产生数据的数据源对象或者是有能力接收数据的接收端对象,它屏蔽了实际的I/O设备中处理数据的细节。 IO流是实现输入输出的基础,它可以很方便地实现数据的输入输出操作,即读写操作。 本片要点 介绍流的定义和基本分类。 介绍文件字符流、字节流、转换流、合并流、打印流等使用。 介绍 阅读全文
posted @ 2020-12-18 00:40 天乔巴夏丶 阅读(753) 评论(0) 推荐(3) 编辑
摘要:Runtime类简介 Java中,Runtime类提供了许多的API 来与java runtime environment进行交互,如: 执行一个进程。 调用垃圾回收。 查看总内存和剩余内存。 Runtime是单例的,可以通过Runtime.getRuntime()得到这个单例。 API列表 pub 阅读全文
posted @ 2020-12-16 23:02 天乔巴夏丶 阅读(1828) 评论(0) 推荐(0) 编辑
摘要:Java8时Lambda表达式的出现,将行为作为参数传递进函数的函数式编程,大大简化了之前冗杂的写法。 如果你对Lambda还不了解,可以参考我之前的关于Lambda表达式的总结:Java8的Lambda表达式,你会不? 对于集合一类,我们来整理一下发生的变化叭。 Iterable的forEach 阅读全文
posted @ 2020-12-13 18:12 天乔巴夏丶 阅读(690) 评论(1) 推荐(2) 编辑
摘要:ConcurrentModificationException 网上关于集合类型使用Iterator遍历需要注意的事项想必大家都已熟知,如果你想要遍历的时候删除集合中的元素,如果你像下面这样写,是会报错的! public void testRemove() { Iterator<String> it 阅读全文
posted @ 2020-12-13 15:13 天乔巴夏丶 阅读(234) 评论(0) 推荐(1) 编辑
摘要:Java8新增的Stream + Lambda = !!!起飞,谁用谁知道! 什么是Stream? Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。 Stream可以由数组或集合创建,对流的操作分为两种: 中间操作,每次 阅读全文
posted @ 2020-12-10 23:31 天乔巴夏丶 阅读(936) 评论(0) 推荐(1) 编辑
摘要:理解Lambda Lambda表达式可以是一段可以传递的代码,它的核心思想是将面向对象中的传递数据变成传递行为,也就是行为参数化,将不同的行为作为参数传入方法。 随着函数式编程思想的引进,Lambda表达式让可以用更加简洁流畅的代码来代替之前冗余的Java代码。 口说无凭,直接上个例子吧。在Java 阅读全文
posted @ 2020-12-07 00:10 天乔巴夏丶 阅读(297) 评论(0) 推荐(2) 编辑
摘要:说说自己对于synchronized关键字的了解 synchronized关键字用于解决多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 值得注意的是,在Java早期,JDK1.6之前,synchronized属于重量级锁,效 阅读全文
posted @ 2020-09-21 00:03 天乔巴夏丶 阅读(2080) 评论(2) 推荐(3) 编辑
摘要:进程和线程? 进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,进程是动态的。 系统运行一个程序就是一个进程从创建,运行到消亡的过程。 Java中,启动main函数的时候其实就是启动了一个JVM进程,而main函数所在的线程就是这个进程的主线程。 线程? 线程是一个比进程更小的执行单位。 阅读全文
posted @ 2020-09-18 16:07 天乔巴夏丶 阅读(241) 评论(0) 推荐(1) 编辑
摘要:为什么要用线程池? 池化技术:减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完成任务的数量。 使用线程池的好处: 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到 阅读全文
posted @ 2020-09-18 16:05 天乔巴夏丶 阅读(229) 评论(0) 推荐(1) 编辑
摘要:啥是循环依赖? 下面这种情况比较常见,A中注入了属性B,B中注入了A属性。 @Component public class A { @Autowired private B b; //在A中注入B } @Component public class B { @Autowired private A 阅读全文
posted @ 2020-09-10 21:01 天乔巴夏丶 阅读(1519) 评论(4) 推荐(4) 编辑
摘要:来源于Acwing yxc的闫氏dp分析讲解,本文为几道经典例题的笔记 53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,- 阅读全文
posted @ 2020-09-08 16:36 天乔巴夏丶 阅读(479) 评论(0) 推荐(0) 编辑
摘要:349. 两个数组的交集 难度简单227 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 说明 阅读全文
posted @ 2020-09-07 14:48 天乔巴夏丶 阅读(349) 评论(0) 推荐(0) 编辑
摘要:347. 前 K 个高频元素 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理的, 阅读全文
posted @ 2020-09-07 12:40 天乔巴夏丶 阅读(223) 评论(0) 推荐(0) 编辑
摘要:前言 介绍HashMap遍历的几种方式 介绍HashMap迭代删除的几种方式 HashMap遍历的几种方式 一、迭代器遍历 迭代EntrySet @Test public void testEntrySet() { Iterator<Map.Entry<String, String>> iterat 阅读全文
posted @ 2020-09-07 12:18 天乔巴夏丶 阅读(2005) 评论(0) 推荐(0) 编辑
摘要:字符串的翻转问题 344 反转字符串 双指针做法,反转问题的经典的解决方案,利用两个指针,每次相对移动,移动过程中交换,直到指针相遇。 public void reverseString(char[] s) { if(s.length == 0) return; int l = 0, r = s.l 阅读全文
posted @ 2020-09-06 23:08 天乔巴夏丶 阅读(240) 评论(0) 推荐(0) 编辑