java
文章平均质量分 68
男孩李
被人嘲笑的梦想,越有实现的价值!
展开
-
Java之Socket通信
一、TCP/IP协议TCP/IP是目前世界上应用最为广泛的协议,是以TCP和IP为基础的不同层次上多个协议的集合也称:TCP/IP协议族 或 TCP/IP协议栈TCP:Transmission Control Protocol 传输控制协议IP:Internet Protocol 互联网协议TCP/IP模型应用层的协议:HTTP 超文文传输协议FTP 文件传输协议SMTP 简单邮件传输协议Telnet 远程登录服务IP地址...原创 2021-03-03 21:04:22 · 1932 阅读 · 2 评论 -
浅谈Java中的Lambda表达式
什么是Lambda表达式?Lambda表达式也被称为箭头函数、匿名函数、闭包Lambda表达式体现的是轻量级函数式编程思想'->'符号式Lambda表达式核心操作符号,符号左侧是操作参数,符号右侧是操作表达式JDK8新特性函数式接口函数式接口,就是Java类型系统中的接口。函数式接口,是只包含一个接口方法的特殊接口。语义化检测注解:@FunctionalInterface函数式接口,只包含一个操作方法。Lambda表达式,只能操作一个方法,Java中的Lambda表达式,核原创 2021-02-08 16:26:06 · 193 阅读 · 6 评论 -
Java实现简单计算器功能
一、设计思想功能描述:1.能够实现整数和浮点数的“加减乘除”功能2.有【回退】、【清空】功能网上有很多关于计算器的代码,但是大都是界面设计和监听事件都放在一个Calculator类中实现的逻辑,我将这种实现进行了拆分。这样做的好处在于,将界面设计和具体业务逻辑相分离,降低耦合度,有利于程序的可扩展性和可维护性。主要拆分成这样几个部分:CalculatorView--用于界面的展示 ComActionListener--用于事件监听 CalculatorApplication--用原创 2021-01-13 10:12:46 · 2691 阅读 · 1 评论 -
Nginx在Linux下安装
首先安装nginx所需要的依赖1.安装gcc(命令:yum install gcc) 备注:可以输入gcc -v查询版本信息,看系统是否自带安装2.安装pcre(命令:yum install pcre-devel)3.安装zlib(命令:yum install zlib zlib-devel)4.安装 openssl(命令:yum install openssl openssl-devel) 备注:如果安装了ssl,才需要安装openssl综合命令 yum -y inst...原创 2020-07-04 19:06:25 · 107 阅读 · 0 评论 -
Nginx在windows下安装与配置
一、Nginx简介Nginx是一款轻量级Web服务器、也是一款反向代理服务器。Nginx能干的事情很多,这里简要罗列一些:1.可直接支持Rails和PHP的程序2.可作为HTTP反向代理服务器3.作为负载均衡服务器4.作为邮件代理服务器5.帮助实现前端动静分离...原创 2020-06-25 20:02:39 · 2252 阅读 · 0 评论 -
浅谈Java多线程中的Synchronized关键字
Synchronized的作用能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。Synchronized是Java的关键字,被Java语言原生支持,是最基本的互斥同步手段,是并发编程中的元老级角色,是并发编程的必学内容。Synchronized的两个用法1.对象锁包括方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)2.类...原创 2020-04-19 16:31:38 · 164 阅读 · 0 评论 -
浅谈java中的守护线程
Java线程有两类,一类是用户线程,另一类是守护线程。用户线程:运行在前台,执行具体的任务,程序的主线程、连接网络的子线程等都是用户线程。守护线程:运行在后台,为其他前台线程服务特点:一旦所有用户线程都结束运行,守护线程会随JVM一起结束工作应用:数据库连接池中的检测线程,JVM虚拟机启动后的检测线程最常见的守护线程:垃圾回收线程如何设置守护线程可以通过调用Thre...原创 2020-04-04 21:29:47 · 151 阅读 · 0 评论 -
浅谈多线程之volatile关键字
在介绍volatile之前,先来说说一下几个相关的概念一、相关概念解释原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量重排序:代码书写的顺序与实际执行的顺序不同,指令重排序是编译器或...原创 2020-03-29 17:10:11 · 234 阅读 · 0 评论 -
浅谈流处理平台之Kafka
1.什么是Kafka一个流处理平台具有三个关键能力:(1)发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统。(2)以容错(故障转移)的方式存储消息(流)。(3)在消息流发生时处理它们。2.Kafka中的基本概念Producer:消息和数据的生成者,向Kafka的一个topic发布消息的进程/代码/服务Consumer:消息和数据的消费者,订阅数据...原创 2020-03-01 20:29:34 · 541 阅读 · 0 评论 -
Java之循环删除List中元素的坑
不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。import lombok.extern.slf4j.Slf4j;import java.util.ArrayList;import java.util.Arrays;import java.util.Itera...原创 2020-02-18 16:07:12 · 191 阅读 · 0 评论 -
浅谈java中的ThreadLocal类
在谈ThreadLocal之前,先简单说一下一致性问题及其解决方法。1.一致性问题发生在多个主体对同一份数据无法达成共识。包括分布式一致性问题、并发问题等。特点是场景多、问题复杂、难以察觉——需要严密的思考甚至数学论证。2.一致性问题解决方法一致性问题的解决方法通常有3个。第一排队:比如,锁、互斥量、管程、屏障等。第二投票:例如,paxos、Raft等。这两种都会产生额外的开销。还...原创 2020-02-06 20:32:59 · 183 阅读 · 0 评论 -
JsonUtils工具类实现对象、字符串、集合的转换
首先定义jackson对象public class JsonUtils { // 定义jackson对象 private static final ObjectMapper MAPPER = new ObjectMapper();}1.将对象转换为json字符串 /** * 将对象转换成json字符串 * @param data ...原创 2020-02-01 16:05:30 · 1480 阅读 · 0 评论 -
HashMap底层原理
在这里先简单介绍一下基础的数据结构1.数组数组的本质就是一块连续的内存,存放着具有相同类型的数据。优点:可以通过数组的下标,直接进行访问;缺点:插入节点困难; 2.单链表单链表一般是由一个data域和next指针域构成一个节点,next指针指向下一个节点。其中Head指向头节点,Tail指向尾节点。插入时只需修改next指针的指向即可。优点:插入和删除数据方...原创 2020-01-27 20:41:25 · 121 阅读 · 0 评论 -
java面试总结之——JVM篇
下面对关于jvm的问题做一个总结和整理,分享给大家,方便大家一起学习。中间有说得不对的地方,还请大家多多批评指正。1.什么是JVM及其工作原理答:JVM是用于执行java程序的虚拟机,是java跨平台特性的基础,其工作原理是模拟处理器,堆栈,寄存器等,还有相应的系统指令.2.描述一下JVM加载class文件的原理机制?答:由于Java的跨平台性,经过编译的J...原创 2018-04-20 19:00:33 · 1211 阅读 · 0 评论