Java
kuraki丶
繁华散去,谁为你倾国倾城
展开
-
JVM的内部结构与详述
JVM前言该文章是本人在学习java时,总结的笔记心得。基本来源于各大网络文章或博客。现在不记得出处了,所以如有雷同,望请海涵哈。概念JVM(Java Virtual Machine):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java最具吸引力的特性之一。Java代码,都运行在JVM之上。JRE(Java Runtime Envi...原创 2019-03-15 10:56:51 · 414 阅读 · 0 评论 -
Java 基础知识 02
Java 基础知识 02计算机基础位运算符Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。假设A = 60,B = 13;它们的二进制格式表示将如下:A = 0011 1100B = 0000 1101----------------------A...原创 2019-03-29 18:08:43 · 392 阅读 · 0 评论 -
Java ClassLoader 类加载详解
Java ClassLoader 类加载详解类加载的过程Java中有一个类ClassLoader,它的主要职责就是负责加载各种class文件到JVM中,ClassLoader是一个抽象的class。给定一个.class文件,ClassLoader会尝试加载并且在JVM中生成这个类的各个数据结构,然后使其分布在JVM对应的内存区域中。类的主动使用和被动使用每个类或者被Java程序首...原创 2019-04-05 10:35:12 · 228 阅读 · 0 评论 -
Java 面试题
基础知识实例方法和静态方法的区别实例方法:当类的字节码文件加载到内存中时,类的实例方法并没有被分配入口地址,只有当该类的对象创建以后,实例方法才被分配了入口地址,所以,实例方法并不能被**类名.**调用。当我们创建第一个类的对象时,实例方法的入口地址就会完成分配,在后续创建的对象时,不会再重新分配新的入口地址,也就是说,该类的实例对象共享该实例方法的入口地址,当该类的所有实例对象全部被...原创 2019-03-27 15:14:16 · 2011 阅读 · 1 评论 -
深入理解volatile关键字
深入理解volatile关键字CPU和JMM初识volatile关键字以一个demo来直观的感受下volatile关键字的作用。先将下面代码的中的volatile去掉运行,然后再加上运行main方法,观察两次运行的区别。public class VolatileFoo { // init_value的最大值 private final static int MAX = ...原创 2019-04-08 09:08:29 · 182 阅读 · 0 评论 -
深入学习JVM 01
Java内存区域与对象的创建运行时数据区域程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,是线程私有的内存,可以看做是线程所执行的字节码的行号指示器。字节码指示器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要这个计数器来完成。为线程切换后能恢复到正确的执行位置,每条线程都...原创 2019-04-16 16:00:26 · 166 阅读 · 0 评论 -
spring cloud ribbon源码分析总结
Spring Cloud Ribbon笔记总结01Spring Cloud Ribbon只是一个工具类框架,虽然不需要独立部署,但是几乎存在于每一个Spring Cloud构建的微服务和基础设施中。而且,ribbon实现的是客户端的负载均衡。客户端负载均衡负载均衡是对系统的高可用,网络压力的环节和处理能力扩容的重要手段之一。分为硬件负载均衡和软件负载均衡。硬件负载均衡:通过服务器...原创 2019-05-19 14:10:04 · 267 阅读 · 0 评论 -
微服务构建
基础知识微服务架构微服务是系统架构的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。由于有了轻量级的通信协作基础,所以...原创 2019-05-11 13:06:01 · 203 阅读 · 0 评论 -
Spring Cloud Eureka的学习笔记
Spring Cloud Eureka服务治理微服架构最为核心和基础的模块,主要用来实现各个微服务实例的自动化注册与发现。服务注册每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等一些附加信息告知注册中心,注册中心按服务名分类组织服务清单。服务注册中心还需要以心跳的方式去监测清单中的服务是否可用,若不可用需要从服务清单中剔除,达到排除故障服务的效果。...原创 2019-05-12 20:43:03 · 163 阅读 · 0 评论 -
深入理解ribbon
深入理解ribbon负载均衡器AbstractLoadBalancerpublic abstract class AbstractLoadBalancer implements ILoadBalancer { // 关于服务实例分组的枚举 public enum ServerGroup{ ALL, // 所有服务的实例 STATUS_UP, /...原创 2019-05-22 21:58:01 · 246 阅读 · 0 评论 -
线程池ThreadPoolExecutor源码解读
转载博客链接:http://www.ideabuffer.cn/2017/04/04/深入理解Java线程池:ThreadPoolExecutor/线程池补充知识位运算符Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。假设A = 60,B = 13;它...转载 2019-03-19 11:31:53 · 159 阅读 · 0 评论 -
Redis持久化
Redis持久化概述Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保存数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或两种结合使用。RDB持久化(默认支持,无需配置):该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。AOF持久化:该机...原创 2019-03-20 15:54:27 · 171 阅读 · 0 评论 -
数据库:Oracle和MySQL
关系型数据库概念关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。JDBC注册数据库驱动获取数据库连接创建发送sql的statemen...原创 2019-03-15 11:23:29 · 1372 阅读 · 0 评论 -
XSS和CSRF攻击
XSS和CSRF概念XSS(Cross-site scripting)攻击全称跨站脚本攻击,是一种经常出现在web应用中的计算机安全漏洞,它允许web用户恶意将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的网络钓鱼攻击而变得...原创 2019-03-19 18:12:34 · 319 阅读 · 0 评论 -
MySQL数据库优化
MySQL数据库优化客户/服务器端通信协议MySQL客户端/服务端通信协议是半双工的:在任意时刻,要么是服务器向客户端发送数据,要么是客户端向服务器发送数据,这两个动作不能同时发生。一旦一端开始发送消息,另一端要接收完整个消息才能响应它,所以我们无法也无须将一个消息切成小块独立发送,也没有办法进行流量控制。当查询语句很长的时候,需要设置max_allowed_packet参数。但是需要注...原创 2019-03-15 11:39:48 · 296 阅读 · 0 评论 -
MySQL锁的初识
MySQL锁MySQL锁机制概念锁时计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。查看哪些表被锁:show ...原创 2019-03-15 11:43:06 · 119 阅读 · 0 评论 -
多线程和线程池
多线程多线程基础线程的几种状态新建状态(New): 新创建一个线程对象;就绪状态(Runnable):线程对象创建后,其它线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,只等待获取CPU的使用权,即在就绪状态的线程除CPU之外,其它的运行所需资源都已全部获得。运行状态(Running): 就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Block...原创 2019-03-15 14:20:18 · 183 阅读 · 0 评论 -
Java 基础知识 01
JavaSENIO和IO的区别NIO即New IO,在JDK 1.4引入,NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以**NIO的效率要比IO高很多。**在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。NIO和IO的主要区别:**面向不同:IO是面向流的,NIO是面向缓冲的。**面向流意味着每次从流中读一个或多...原创 2019-03-15 14:32:51 · 230 阅读 · 0 评论 -
Java 面试题 02
面试数据结构和算法基础常见的排序算法和分别的复杂度冒泡排序时间复杂度:最坏O(n²),平均O(n²)空间复杂度:O(1)选择排序时间复杂度:最坏O(n²),平均O(n²)空间复杂度:O(1)归并排序时间复杂度:最坏O(nlogn),平均O(nlogn)空间复杂度:O(n)快速排序时间复杂度:最坏O(nlogn),平均O(n²)空间复杂度:O(log...原创 2019-03-15 15:13:39 · 252 阅读 · 0 评论 -
Dubbo框架及其组成
Dubbo分布式基础理论概念分布式系统是若干个独立计算机的集合,这些计算机对于用户来说就像单个相关系统。分布式系统(distributed system)是建立在网络之上的软件系统。常规的垂直应用架构已经无法应对日常的网站需求,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。发展演变单一应用架构: 当网站流量很小的时候,只需一个应用,将所有功能...原创 2019-03-19 23:40:54 · 1888 阅读 · 1 评论 -
Redis 详解
Redis入门NoSQL概述NoSQL(Not Only SQL),不仅仅是SQL,是一项全新的数据库理念,泛指非关系型的数据库。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题。1...原创 2019-03-20 15:09:10 · 120 阅读 · 0 评论 -
spring cloud feign
spring cloud feignSpring Cloud Feign具有可插拔的注解支持,包括Feign注解和JAX-RS注解。快速入门创建应用主类FeignApplication,并通过@EnableFeignClients注解开启Spring Cloud Feign的支持功能。@EnableFeignClients@EnableDiscoveryClient@Sprin...原创 2019-06-11 22:42:29 · 323 阅读 · 0 评论