随笔分类 -  Java

摘要:什么是Java线程模型 因为Java字节码运行在JVM中,而JVM运行在各个操作系统上,所以当JVM想要进行线程创建和回收的这种操作时,是必须要调用操作系统的相关接口,也就是说JVM线程与操作系统线程之间存在着某种映射关系。 这两种不同维度的线程之间的规范和协议呢,就是线程模型。有人可能要问了那为什 阅读全文
posted @ 2021-10-10 18:24 songguojun 阅读(1818) 评论(0) 推荐(0) 编辑
摘要:1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 具体来说 JD 阅读全文
posted @ 2021-05-24 15:50 songguojun 阅读(689) 评论(0) 推荐(0) 编辑
摘要:官网:http://dubbo.io/ 下面表格是对上面节点作用说明: Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 阅读全文
posted @ 2021-03-06 00:32 songguojun 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud简介 Spring Cloud官网:https://www.springcloud.cc/ Spring Cloud并不是一个框架,而是Spring为微服务提供一站式解决方案。 Spring Cloud底层是基于Spring Boot实现的云应用开发。 Spring Clou 阅读全文
posted @ 2021-02-28 16:53 songguojun 阅读(485) 评论(0) 推荐(0) 编辑
摘要:Java 语言在设计之初就引入了线程的概念,以充分利用现代处理器的计算能力,这既带来了强大、灵活的多线程机制,也带来了线程安全等令人混淆的问题,而 Java 内存模型(Java Memory Model,JMM)为我们提供了一个在纷乱之中达成一致的指导准则。 Happen-before 原则简单理解 阅读全文
posted @ 2021-02-26 17:10 songguojun 阅读(272) 评论(0) 推荐(0) 编辑
摘要:JVM概述 垃圾收集机制为我们打理了很多繁琐的工作,大大提高了开发的效率,但是,垃圾收集也不是万能的,懂得 JVM 内部的内存结构、工作机制,是设计高扩展性应用和诊断运行时问题的基础。 JVM 内存区域的划分 通常可以把 JVM 内存区域分为下面几个方面,其中,有的区域是以线程为单位,而有的区域则是 阅读全文
posted @ 2021-02-20 08:50 songguojun 阅读(86) 评论(0) 推荐(0) 编辑
摘要:HashMap介绍 hashMap是java中一个非常重要的数据结构,工作中也会经常使用到。 HashMap与Map接口的关系 HashMap继承于AbstractMap类,实现了Map接口,Map是key-value键值对的接口,AbstractMap实现了"键值对"的通用函数接口。 TreeMa 阅读全文
posted @ 2021-02-18 14:58 songguojun 阅读(308) 评论(0) 推荐(0) 编辑
摘要:volatile的作用及原理 当一个变量被volatile修饰时,会拥有两个特性: 保证了不同线程对该变量操作的内存可见性.(当一个线程修改了变量,其他使用次变量的线程可以立即知道这一修改). 禁止了指令重排序. 1. 保证内存可见性 JMM操作变量的时候不是直接在主存进行操作的,而是每个线程拥有自 阅读全文
posted @ 2021-02-16 20:40 songguojun 阅读(157) 评论(0) 推荐(0) 编辑
摘要:集合框架的线程安全问题 在高并发的场景下有些集合框架是非线程安全的,比如ArrayList、LinkedList、HashSet、HashMap等,因此在高并发环境下使用时是非常不安全的。所以Java也提供了对应的线程安全的并发版本。 集合框架 线程安全集合框架 说明 ArrayList CopyO 阅读全文
posted @ 2021-02-16 20:33 songguojun 阅读(42) 评论(0) 推荐(0) 编辑
摘要:Netty概述 Netty是由Jboss提供的一个异步的,基于事件驱动的高性能网络通信开源框架,可以快速的开发高性能,高可靠的网络IO程序,其实就是对Java原生IO的优化和重写。 Netty主要是针对TCP协议下(TCP/IP -> JDK原生IO -> NIO-> Netty),面向Client 阅读全文
posted @ 2021-02-16 18:35 songguojun 阅读(925) 评论(0) 推荐(0) 编辑
摘要:一、什么是CAS 假设现在有多个线程想要操作同一个资源对象,很多人的第一反应就是使用互斥锁,但是互斥锁的同步方式是悲观的。 什么是悲观呢?简单来说就是操作系统将会悲观地认为如果不严格同步线程的调用,那么一定会产生异常,所以互斥锁将会将资源锁定只供一个线程调用而阻塞其他线程。因此这种同步机制也叫做悲观 阅读全文
posted @ 2021-02-15 17:56 songguojun 阅读(122) 评论(0) 推荐(0) 编辑
摘要:synchronized官方解释 翻译成中文: Synchronized同步方法可以支持使用一种简单的策略来防止线程干扰和内存一致性错误:如果一个对象对多个线程可见,则对该对象变量的所有读取或写入都是通过同步方法完成的。 简单就是说Synchronized的作用就是Java中解决并发问题的一种最常用 阅读全文
posted @ 2021-02-15 12:39 songguojun 阅读(20823) 评论(0) 推荐(1) 编辑
摘要:IO模型 IO模型简单点说就是使用什么样的通道进行数据的发送和接收,这种通道的特性决定了程序通信的性能, 比如这个通道是否是异步还是同步,是阻塞还是非阻塞,是否有缓存,是单向通道还是双向通道。 Java中IO模型 Java中共支持3中网络IO模型:BIO,NIO,AIO。 1. BIO: 同步并阻塞 阅读全文
posted @ 2021-02-12 00:32 songguojun 阅读(605) 评论(0) 推荐(0) 编辑
摘要:先看一段代码 public class ThreadDemo extends Thread{ private String name; public ThreadDemo(String name) { this.name = name; } @Override public void run() { 阅读全文
posted @ 2021-01-10 23:29 songguojun 阅读(503) 评论(0) 推荐(0) 编辑
摘要:Eureka是什么 Eureka是Netflix的一个子模块,采用的是c/s架构,Spring Cloud 中将 Eureka 集成在 Spring Cloud Netflix 项目中。Eureka是一个基于REST的服务,用来实现服务注册和发现,负载均衡等功能。 Spring Cloud内置Eur 阅读全文
posted @ 2021-01-09 15:25 songguojun 阅读(233) 评论(0) 推荐(0) 编辑
摘要:什么是Spring Data Spring Data是Java Spring框架家族中的一员,Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问,支持包括NoSQL和关系数据库存储、Map-Reduce 框架、云数据服务等等。其主要目标是使数据库的访问变得方便快捷 阅读全文
posted @ 2020-07-08 22:00 songguojun 阅读(91) 评论(0) 推荐(0) 编辑
摘要:Tomcat概念 Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。 Tomcat安装 Tomcat官网:https://tomcat.apache.org/ Tomcat下载可以在官网下载列表中下载。 根 阅读全文
posted @ 2020-06-02 02:22 songguojun 阅读(500) 评论(0) 推荐(0) 编辑
摘要:Java 在设计之初就提供了相对完善的异常处理机制,因为这种机制大大降低了编写和维护可靠程序的门槛。 Exception 和 Error,运行时异常与一般异常有什么区别? Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可 阅读全文
posted @ 2020-05-08 17:04 songguojun 阅读(46) 评论(0) 推荐(0) 编辑
摘要:java反射(Reflection)介绍 Java 反射机制可以让我们在程序编译期(Compile Time)之外的运行期(Runtime)可以拿到一个对象的所有信息,比如检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值。 反 阅读全文
posted @ 2019-11-02 19:20 songguojun 阅读(443) 评论(0) 推荐(0) 编辑
摘要:Java 的类加载步骤 1. 加载(Loading): Java 将字节码数据从不同的数据源读取到 JVM 中,并映射为 JVM 认可的数据结构(Class 对象),这里的数据源可能是各种各样的形态,如 jar 文件、class 文件,甚至是网络数据源等;如果输入数据不是 ClassFile 的结构 阅读全文
posted @ 2019-08-04 23:47 songguojun 阅读(48) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示