技能篇:sed教程-linux命令

2021-06-23
阅读 3 分钟
1.3k
前言sed 全名为 stream editor,是用于文本处理的流编辑器,支持正则表达式。 sed处理文本时是一次处理一行内容关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢starsed语法sed命令处理的内容是模式空间中的内容,而非直接处理文件内容。如果加上参数 i 则可直接修改文件内容示例:sed -i 's/原字符串/新字...

数据库篇:mysql内置函数

2021-06-23
阅读 5 分钟
2.3k
前言sql 是程序开发员绕不开的一项技能,而mysql是当前最流行的数据库,熟知其内置的一些函数,可以使我们平时的开发工作更加顺畅和方便时间日期函数字符串函数数学计算相关函数条件判断函数加密和压缩函数聚合函数格式或类型转化函数加锁函数和解锁函数关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢star...

基础篇:String字符串操作-必知必备

2021-06-23
阅读 4 分钟
978
前言字符串的常用操作,记一下。如果有字符串的操作小技巧,好用的工具类,欢迎补全。大家随意点赞,随意看看String实现原理String常用方法字符串的缓存池和String.intern正则匹配和字符串StringBuffer和StringBuilderspring工具类StringUtils关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢starString实现...

网络篇:朋友面试之https认证加密过程

2021-06-23
阅读 3 分钟
2k
前言上次朋友关于TCP/IP面试的后续,主要是https的相关面试要点,请看下文关注公众号,一起交流,微信搜一搜: 潜行前行github地址,感谢star面试官:HTTPS它的认证加密过程是怎样,它怎么保证内容不会被篡改朋友:1,https是基于tcp协议的,客户端先会和服务端发起链接建立朋友:2,接着服务端会把它的证书返回给客户端...

基础篇:JAVA.Stream函数,优雅的数据流操作

2021-06-23
阅读 15 分钟
1.7k
平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看。java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式

基础篇:异步编程不会?我教你啊!CompletableFuture(JDK1.8)

2021-06-23
阅读 14 分钟
1.5k
以前需要异步执行一个任务时,一般是用Thread或者线程池Executor去创建。如果需要返回值,则是调用Executor.submit获取Future。但是多个线程存在依赖组合,我们又能怎么办?可使用同步组件CountDownLatch、CyclicBarrier等;其实有简单的方法,就是用CompeletableFuture

网络篇:朋友面试之TCP/IP,回去等通知吧

2021-06-23
阅读 7 分钟
2.2k
最近和一同学聊天,他想换工作,然后去面了一家大厂。当时,他在简历上写着精通TCP/IP,本着对TCP协议稍有了解,面试官也不会深问的想法,就写了精通二字。没想到,大意了

框架篇:见识一下linux高性能网络IO+Reactor模型

2021-06-23
阅读 6 分钟
3.3k
网络I/O,可以理解为网络上的数据流。通常我们会基于socket与远端建立一条TCP或者UDP通道,然后进行读写。单个socket时,使用一个线程即可高效处理;然而如果是10K个socket连接,或者更多,我们如何做到高性能处理?

基础篇:JAVA原子组件和同步组件

2021-06-23
阅读 9 分钟
1.7k
在使用多线程并发编程的时,经常会遇到对共享变量修改操作。此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据。但如果单单是涉及状态的修改,线程执行顺序问题,使用Atomic开头的原子组件或者ReentrantLock、CyclicBarrier之类的同步组件,会是更好的选择,下面将一一介绍它们的原理和用法

基础篇:深入解析JAVA泛型

2020-10-26
阅读 9 分钟
4.9k
先了解下java的Type类型体系(类的类=>类型),Type是所有类型(原生类型-Class、参数化类型-Parameterizedtype、数组类型-GenericArrayType、类型变量-TypeVariable、基本类型-Class)的共同接口;前两篇反射和注解讲到的Class<T>就是Type的一实现类

基础篇:深入解析JAVA反射机制

2020-09-28
阅读 6 分钟
2.1k
通俗解析:java文件需要编译成.class文件才能被jvm加载使用,对象的.class数据在jvm里就是Class<T>;我们如果能拿到这个Class<T>对象,就能获取该Class<T>对应的对象类型,及在该类型声明的方法和属性值;还可以根据Class<T>创建相应的类型对象,通过Field,Method反过来操作对象

基础篇:JAVA内部类的使用介绍

2020-08-31
阅读 4 分钟
5.5k
1 四种内部类成员内部类静态内部类局部内部类匿名内部类2 内部类的使用场景和优点内部类的优点:每个内部类都能独立地继承一个类(实现多个接口),无论外部类是否已经继承或者实现,对于内部类都没有影响。内部类的存在使得Java的多继承机制变得更加完善在开发设计中会存在一些使用接口很难解决的问题,而类却只能继承一...

基础篇:详解锁原理,synchronized、volatile+cas底层实现

2020-07-21
阅读 16 分钟
8.5k
例如:一个线程想在控制台输出"I am fine",刚写到"I am",就被另一线程抢占控制台输出"naughty",导致结果是"I am naughty";对于资源的被抢占使用,我们能怎么办呢?当然不是凉拌,可使用锁进行同步管理,使得资源在加锁期间,其他线程不可抢占使用

基础篇:深入JMM内存模型解析volatile、synchronized的内存语义

2020-07-15
阅读 7 分钟
3.9k
先介绍下多进程多线程在linux几种通信方式管道:管道的实质是一个内核缓冲区,需要通信的两个进程各在管道的两端,进程利用管道传递信息信号:信号是软件层次上对中断机制的一种模拟,进程不必阻塞等待信号的到达,信号可以在用户空间进程和内核之间直接交互消息队列:消息队列是消息的链表,存放在内存中并由消息队列标...

基础篇:JAVA.Object对象

2020-07-11
阅读 8 分钟
1.7k
对象头布局如下:主要和锁,hashcode,垃圾回收有关;由于锁机制的内容篇幅过长,这里就不多解释了;和锁相关的markWord(markOop)内存布局如下