发布了文章2021-06-23
前言sed 全名为 stream editor,是用于文本处理的流编辑器,支持正则表达式。 sed处理文本时是一次处理一行内容关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢starsed语法sed命令处理的内容是模式空间中的内容,而非直接处理文件内容。如果加上参数 i ...
发布了文章2021-06-23
前言sql 是程序开发员绕不开的一项技能,而mysql是当前最流行的数据库,熟知其内置的一些函数,可以使我们平时的开发工作更加顺畅和方便时间日期函数字符串函数数学计算相关函数条件判断函数加密和压缩函数聚合函数格式或类型转化函数加锁函数和解锁函数关注公众号,...
发布了文章2021-06-23
前言字符串的常用操作,记一下。如果有字符串的操作小技巧,好用的工具类,欢迎补全。大家随意点赞,随意看看String实现原理String常用方法字符串的缓存池和String.intern正则匹配和字符串StringBuffer和StringBuilderspring工具类StringUtils关注公众号,一起交流,...
发布了文章2021-06-23
前言上次朋友关于TCP/IP面试的后续,主要是https的相关面试要点,请看下文关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢star面试官:HTTPS它的认证加密过程是怎样,它怎么保证内容不会被篡改朋友:1,https是基于tcp协议的,客户端先会和服务端发起链...
发布了文章2021-06-23
平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看。java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式
发布了文章2021-06-23
以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简单的方法,就是用CompeletableFuture
发布了文章2021-06-23
最近和一同学聊天,他想换工作,然后去面了一家大厂。当时,他在简历上写着精通TCP/IP,本着对TCP协议稍有了解,面试官也不会深问的想法,就写了精通二字。没想到,大意了
发布了文章2021-06-23
网络I/O,可以理解为网络上的数据流。通常我们会基于socket与远端建立一条TCP或者UDP通道,然后进行读写。单个socket时,使用一个线程即可高效处理;然而如果是10K个socket连接,或者更多,我们如何做到高性能处理?
发布了文章2021-06-23
在使用多线程并发编程的时,经常会遇到对共享变量修改操作。此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据。但如果单单是涉及状态的修改,线程执行顺序问题,使用Atomic开头的原子组件或者ReentrantLock、CyclicBarrier之类的同步...
发布了文章2021-03-16
jdk8之前我们一直在用Date、Calender和SimpleDateFormat,但它的API不够强大,还存在线程安全问题,一直被人诟病。jdk8提供了新的时间API,在java.time包里的类是不可变且线程安全的,它和Joda是同一个作者实现的,因此借鉴了Joda很多特点,如果你用习惯Joda,可以很...
发布了文章2021-03-16
和前端进行数据交互时或者和第三方商家对接时,需要对隐私数据进行加密。单向加密,对称加密,非对称加密,其对应的算法也各式各样。java提供了统一的框架来规范(java.security)安全加密这类API。下面将一一介绍
发布了文章2021-03-16
数据序列化存储,或者数据通过网络传输时,会遇到不可避免将数据转成字节数组的场景。字节数组的读写不会太难,但又有点繁琐,为了避免重复造轮子,jdk推出了ByteBuffer来帮助我们操作字节数组;而netty是一款当前流行的java网络IO框架,它内部定义了一个ByteBuf来管...
发布了文章2021-03-16
平时并发编程,除了维护修改共享变量的场景,有时我们也需要为每一个线程设置一个私有的变量,进行线程隔离,java提供的ThreadLocal可以帮助我们实现,而讲到ThreadLocal则不得不讲讲java的四种引用,不同的引用类型在GC时表现是不一样的,引用类型Reference有助于我...
发布了文章2020-10-31
大白话解释,零拷贝就是没有把数据从一个存储区域拷贝到另一个存储区域。但是没有数据的复制,怎么可能实现数据的传输呢?其实我们在java NIO、netty、kafka遇到的零拷贝,并不是不复制数据,而是减少不必要的数据拷贝次数,从而提升代码性能
发布了文章2020-10-26
先了解下java的Type类型体系(类的类=>类型),Type是所有类型(原生类型-Class、参数化类型-Parameterizedtype、数组类型-GenericArrayType、类型变量-TypeVariable、基本类型-Class)的共同接口;前两篇反射和注解讲到的Class<T>就是Type的一实现类
发布了文章2020-10-04
java注解是JDK1.5引入的一种注释机制,java语言的类、方法、变量、参数和包都可以被注解标注。和Javadoc不同,java注解可以通过反射获取标注内容
发布了文章2020-09-28
通俗解析:java文件需要编译成.class文件才能被jvm加载使用,对象的.class数据在jvm里就是Class<T>;我们如果能拿到这个Class<T>对象,就能获取该Class<T>对应的对象类型,及在该类型声明的方法和属性值;还可以根据Class<T>创建相应的类型对...
发布了文章2020-09-06
方法中发生异常,会创建一个异常对象交给JVM处理,该异常对象包含异常名称,异常描述以及异常发生时应用程序的状态。创建异常对象并交给JVM的过程称为抛出异常。这会有一系列的方法调用,这系列方法调用的有序列表叫做调用栈
发布了文章2020-08-31
1 四种内部类成员内部类静态内部类局部内部类匿名内部类2 内部类的使用场景和优点内部类的优点:每个内部类都能独立地继承一个类(实现多个接口),无论外部类是否已经继承或者实现,对于内部类都没有影响。内部类的存在使得Java的多继承机制变得更加完善在开发设计中...
发布了文章2020-08-17
1 对象的实例化过程对象的实例化过程是分成两部分:类的加载初始化,对象的初始化要创建类的对象实例需要先加载并初始化该类,main方法所在的类需要先加载和初始化类初始化就是执行<clinit>方法,对象实例化是执行<init>方法一个子类要初始化需要先初始...