自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 java8学习(六)Optional类

这个Optional类主要是解决空指针的问题1.以前对null 的处理public static void main(String[] args) { UserDto userDto1=new UserDto(1l,null); UserDto userDto2=new UserDto(2l,"张三"); String name = getName(userDto2); System.out.println(name); }

2021-08-08 15:40:45 107

原创 java8学习(五)Stream API

1。Steam流式思想概述注意:Stream和IO流(InputStream/OutputStream)没有任何关系。Stream流式思想类似于工厂车间的“生产流水线”,Stream流不是一种数据结构,不保存数据,而是对数据进行加工处理。Stream可以看作是流水线上的一个工序。在流水线上,通过多个工序让一个原材料加工成一个商品。Stream API能让我们快速完成许多复杂的操作,如筛选、切片、映射、查找、去除重复,统计,匹配和归约。2.Stream流的获取方式2.1根据Collection获取

2021-07-30 15:06:15 168

原创 java8学习(三)函数式接口

java8学习(三)函数式接口1. 函数式接口 的产生在学习完Lambda表达式之后得到结论:使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。因此为了让我们使用Lambda表达式更加的方便,在JDK中提供了大量常用的函数式接口。2....

2021-07-29 14:40:55 143

原创 java8学习(二)接口中新增的方法

java8学习(二)接口中新增的方法在jdk1.8接口中可以写静态常量和抽象方法。jdk8之后对接口做了增加,接口中可以有默认方法和静态方法interface 接口名{ 静态常量; 抽象方法; 默认方法; 静态方法; }1、默认方法1.1为什么要增加默认方法JDK8以前接口中只能有抽象方法和静态常量,会存在以下的问题:如果接口中新增抽象方法,那么实现类都必须要抽象这个抽象方法,非常不利于接口的扩展public class Java8InterFaceDemo {

2021-07-08 23:31:44 1054

原创 java8学习(一)Lambda表达式

Lambda表达式产生条件创建一个新的线程,并执行相关任务 public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.out.println("线程中的方法执行..."+Thread.currentThread().getName());

2021-07-08 17:36:56 113 1

原创 JVM学习(三)垃圾回收(Garbage Collect)、垃圾回收算法、垃圾收集器

在上次的学习中 我们把关注点一步一步转移到了方法区和堆中,而堆我们也详细的分析了一下,如果说到JVM优化,那么堆的优化肯定是首当其冲的,所以我们也不难想到垃圾回收什么样的对象能称之为“垃圾”引用计数法对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。弊端:如果两个对象相互引用,则会导致永远无法回收。可达性分析通过GC Root的对象,开始向下寻找,看某个对象是否可达,如果可达则不是垃圾。能作为GC Root的对象:类加载器

2021-02-03 10:42:44 197

原创 JVM学习(二)深入了解运行时数据区(方法区、堆、虚拟机栈)

在上一次学习中我们已经知道了运行时数据区包含了:方法区、堆、虚拟机栈、本地方法栈、程序计数器这五个部分,那么我们到底要学习什么呢?我认为本地方法栈和程序计数器是没有必要学习的,或者说已经超出了java领域,那么我们就把重点放在其他三个领域,方法区和堆是存储数据的,虚拟机栈则是对应执行方法的时候过程,想到这我就很激动,我们每次写完一个方法到底是在虚拟机中如何运行的?每个java方法中需要包含什么内容官网给出的信息是这样讲的:java虚拟机栈压的其实是每一个的栈帧,而栈帧里面包含了:局部变量表(Loca

2021-01-31 18:01:10 127

原创 JVM学习(一)如何从类文件开始学习类加载机制(双亲委派)、运行时数据区

写在前面官网经典图的简单介绍下面是我在jdk8官网上截的一张图,这张图充分的说明了JDK、JRE、JVM三者之间的关系,可以到JDK所在的位置是超级包含了JRE,而JRE又包含了JVM,同时能看出来JDK为开发者提供了很多的工具供开发者使用,JRE为我们提供了很多的类库提供了运行的支撑,JVM是我们的代码能运行在各操作系统上的支撑。要怎么学习?现在我所停留的阶段是在JDK层面,即使用层面,那如何走进JVM呢?,我想我还是应该再我最熟悉的领域开始,然后一步一步走到最深处,所以宏观来看需要4个

2021-01-27 11:17:11 300 3

原创 Netty客户端简易实现(http协议),Netty网络编程之客户端

前几天用Netty写了一个简单的服务端,点击进入Netty服务端,今天把相应的客户端实现一下。上次忘了贴出maven依赖了,这次补上 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.6.Final</version

2021-01-23 17:55:36 1077 2

原创 Netty服务端简易实现(http协议),Netty网络编程之服务端

Netty服务端简易实现(http协议)简单了解为何学习netty说到netty就不得不提各种IO模型,在java中常见的主要有三种BIO(同步阻塞的I/O模型)、NIO(同步非阻塞的I/O模型)、AIO(异步非阻塞的IO模型,期性能依赖于操作系统),其中优劣势就不过多评论,可以参考别的博文。netty是对NIO的封装实现,据说相较与传统I/O(BIO)模型性能提升了8倍之多。如果我们想进一步提升自己还是有必要学习一下的,我将会实现netty的服务端、客户端的简单编码,同时也会实现一个自定义协议,来

2021-01-21 15:55:15 573 8

原创 代理模式、静态代理、动态代理

代理模式、静态代理、动态代理1、 静态代理先新创建一个接口public interface Target { void hello(String name);}实现接口public class TargetImpl implements Target{ @Override public void hello(String name) { System.out.println("你好:"+name); }}创建代理类,也是实现了Ta

2021-01-17 17:00:48 325 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除