java
mbshqqb
这个作者很懒,什么都没留下…
展开
-
java对象创建过程
原创 2021-07-14 16:24:03 · 85 阅读 · 0 评论 -
Java 类加载过程
一、加载加载一个Class需要完成以下3件事:通过Class的全限定名获取Class的二进制字节流将Class的二进制内容加载到虚拟机的方法区在内存中生成一个java.lang.Class对象表示这个Class获取Class的二进制字节流这个步骤有多种方式:从zip中读取,如:从jar、war、ear等格式的文件中读取Class文件内容从网络中获取,如:Applet动态生成,如:动态代理、ASM框架等都是基于此方式由其他文件生成,典型的是从jsp文件生成相应的Class二、校验原创 2021-07-14 14:55:25 · 76 阅读 · 0 评论 -
Java Stream操作
Stream的基本概念Stream和集合的区别:1.Stream不会自己存储元素。元素储存在底层集合或者根据需要产生。2.Stream操作符不会改变源对象。相反,它会返回一个持有结果的新的Stream。3.Stream操作可能是延迟执行的,这意味着它们会等到需要结果的时候才执行。Stream操作的基本过程,可以归结为3个部分:创建一个Stream。在一个或者多个操作中,将指定的Stream转换为另一个Stream的中间操作。通过终止(terminal)方法来产生一个结果。该操作会强制它之前的原创 2020-09-16 17:03:31 · 146 阅读 · 0 评论 -
Java并发-线程状态
原创 2020-08-20 15:55:37 · 106 阅读 · 0 评论 -
并发编程-内存一致性和缓存一致性的区别
缓存一致性问题是由于多核处理器的每个核心都有属于自己的L寄存器和WriteBuffer引起的CPU缓存和内存间数据不一致问题。(L1缓存/WB/L2缓存/L3缓存)内存一致性问题是由于多线程程序中,不同线程的工作内存对主内存访问的可见性问题引起的。(Read/Load/Use/Assign/Store/Write)两者所解决的问题不一样。一个是核心之间的缓存如何同步,一个是线程之间的内存如何同步。(同步:通信+可见)...原创 2020-08-17 15:52:46 · 754 阅读 · 0 评论 -
JavaSoket编程(二)
注:本文为对Java socket详解,看这一篇就够了续的重排版,方便自己浏览。接下来我们将进一步讨论Java socket 异步通信,Java socket异步通信包主要位于是在Java.nio框架下,在讲解Java socket异步通信前,我们先来回顾一下传统socket通信的演进。Blocking I/O 模式BlockIng I/O模式下,主要缺点如下:只能用于小规模下多个s...原创 2020-04-06 23:06:03 · 209 阅读 · 0 评论 -
JavaSoket编程(一)
常见问题:1.arp为什么是网络层协议,而不是数据链路层协议?2.Socket属于那一层?socket和TCP/UDP的关系是什么?Socket和TCP/IP是什么关系?3.Socket通信的流程?4.客户端socket发送消息后,为什么服务端socket没有收到?5.使用while 循环实现连续输入,是不是就是多线程模式?6.对多线程处理机制不是很明白,希望详细讲解?7.希望详细讲...原创 2020-04-04 15:46:09 · 392 阅读 · 0 评论 -
Spring AOP
Spring支持五种类型的增强或通知(Advice):方法执行前:org.apringframework.aop.MethodBeforeAdvice方法返回后:org.springframework.aop.AfterReturningAdvice异常抛出后:org.springframework.aop.ThrowsAdviceArround环绕:即方法前后 org.aopalianc...原创 2020-03-30 16:40:23 · 119 阅读 · 0 评论 -
Spring IOC
一、Spring中的Bean生命周期和作用域Spring容器的作用是创建Bean并管理Bean的生命周期。不同bean的生命周期和作用域不同。在Spring3中定义了5中不同作用域的Bean:1.singleton:作用域:在每个Spring IoC容器中,一个Bean定义对应一个对象实例。使用场景:单例模式对无会话状态Bean(如:DAO组件、业务组件)是最理想的选择。2.proto...原创 2020-03-30 15:45:04 · 226 阅读 · 0 评论 -
阿里云安装Nacos单机版
一、下载nacoswget https://github.com/alibaba/nacos/releases/download/1.2.0/nacos-server-1.2.0.tar.gz二、安装nacos[root@mbshqqb local]# tar -xzvf /root/nacos-server-1.2.0.tar.gz[root@mbshqqb local]# cd nac...原创 2020-03-20 00:54:13 · 1083 阅读 · 0 评论 -
单例模式与并发访问的误解
单例模式与并发访问的误解单例模式并不能解决并发访问,static变量或单例模式可以解决单实例问题,单不能解决并发访问问题,以为这是两个概念。单例模式解决了以下问题:1.如何保证多个对象中创建的实例是同一个2.如何保证多线程中创建的实例是同一个并发解决了以下问题:多线程修改同一个实例时产生并发冲突所以: 并发问题一般出现在单例模式中,非单例模式,即线程独有的实例是不会发生并发冲突。...原创 2020-03-07 11:22:59 · 982 阅读 · 0 评论 -
项目中的if else太多了,该怎么重构?
介绍最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的if (msgType = "文本") { // dosomething} else if(msgType = "图片") { // doshomething} else if(msgType = "视频") { // doshomething} else { // doshom...转载 2020-01-15 15:59:36 · 217 阅读 · 1 评论 -
挑战10个最难的Java面试题(附答案)
挑战10个最难的Java面试题(附答案)【上】挑战10个最难的Java面试题(附答案)【下】原创 2019-10-23 17:47:29 · 411 阅读 · 0 评论 -
Dubbo服务注册慢之坑
1.开发环境Dubbo服务注册慢解决方法:查看是不是在某个方法名称上加了断点,如加了断点直接去掉即可。原创 2019-10-20 11:46:16 · 2089 阅读 · 2 评论 -
Java基础之IO
目录(?)[+]1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java转载 2016-10-13 22:32:30 · 356 阅读 · 0 评论 -
IO模型
一、 JavaIO模型之InputStream和OutPutStream:I- 就是从其他到内存O- 就是从内存到其他xxReader:从xx读,其read(char[]buff)方法表示把Reader中的内容读到buff,即写入buffxxWriter:写入xx,其write(char[]buff)方法表示把buff中的内容写入Writer,即从buff读char buff[]={};Buff...原创 2018-04-03 18:15:48 · 228 阅读 · 0 评论 -
instanceof与isAssignableFrom
new 我() instanceof 你: 我是你爸爸我.class.isAssignableFrom(你.class): 我是你儿子class A{}class B extends A{}class C extends A{}public class InstanceOf_isAssignableFrom { public static void main(String[] arg...原创 2018-04-04 16:34:05 · 212 阅读 · 0 评论 -
RPC概述
RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。那么我们至少从这样的描述中挖掘出几个要点:RPC是协议:既然是协议就只是一套规范,那么就需要有人遵循这套...原创 2018-05-04 12:34:02 · 1307 阅读 · 0 评论 -
RxJava之前世今生(一)
学习RxJava之前,我们可能会好奇为什么叫做RxJava。如果你不知道ReactiveX的话,那么你可能还真不知道什么是Rx。一、Rx介绍创ReactiveX是Reactive Extensions的缩写,一般简写为Rx。最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异...原创 2018-10-02 12:21:29 · 261 阅读 · 0 评论 -
RxJava的观察者模式(二)
上一篇中我们了解了什么是RxJava,用一个词来总结就是异步。这里我们来讲讲RxJava的异步实现。它是通过一种扩展的观察者模式来实现。一、观察者模式先简书一下观察者模式。 观察者模式面向的需求是:观察者对被观察者的某种变化作出反应。比如警察抓小偷,警察需要在小偷作案时实施抓捕。在这里面小偷是被观察者,警察是观察者。而程序的观察者模式跟真正的观察略有不同,观察者不需要时时刻刻顶着被观察者...原创 2018-10-02 12:30:53 · 405 阅读 · 0 评论 -
世界上最美的诗
费曼学习法:学习+教学+纠错怀疑学习法:合理性分析+必要性分析原创 2018-11-28 18:58:30 · 538 阅读 · 1 评论 -
重写equals就必须重写hashCode的原理分析
重写equals就必须重写hashCode的原理分析因为最近在整理Java集合的源码, 所以今天再来谈谈这个古老的话题,因为后面讲HashMap会用到这个知识点, 所以重新梳理下。如果不被重写(原生Object)的hashCode和equals是什么样的? 不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。 不被重写(原生)的equals方法是严格判断一个对象是...转载 2019-05-22 14:22:20 · 162 阅读 · 0 评论 -
Java并发编程
一、Volatile1.代码:package com.tuling.concurrent;public class VolatileVisibilityTest { private static boolean initFlag = false; public static void main(String[] args) throws InterruptedExcept...原创 2019-07-21 22:40:55 · 129 阅读 · 0 评论 -
Java对象转Map
Useruser=new User();Map<String,Object>stringObjectMap=JSON.parseObject(JSON.toJSONString(user),new TypeReference<Map<String,Object>>(){});System.out.println(stringObjectMap);原创 2019-10-09 09:32:34 · 586 阅读 · 0 评论 -
泛型与泛型传参
为什么使用TypeReference从fastjson的TypeReference用法,推导如何实现泛型反射原创 2019-10-09 10:54:23 · 1189 阅读 · 0 评论 -
巧记InputStream与OutputStream
不管你从磁盘读,从网络读,或者从键盘读,读到内存,就是InputStream。不管你写倒磁盘,写到网络,或者写到屏幕,都是OuputStream。注:总之记住输入输出是相对于内存而言的就可以了。转载 2016-10-19 21:24:34 · 588 阅读 · 0 评论