
java笔记
文章平均质量分 78
无良的奋斗少年
这个作者很懒,什么都没留下…
展开
-
【基于官方理解】Spring CLoud Netflix实战
SpringCloud学习笔记背景Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。 它们可以在任何分布式环境中很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。特征Spring原创 2020-11-01 18:40:39 · 485 阅读 · 0 评论 -
如何对远程jar包进行Debug?
在现实开发过程中,现场环境永远比开发环境复杂,如果开发环境无法还原现场问题,就需要开发人员远程调试现场问题,接下来,本人基于网上讲解以及自己的理解完成远程调试Jar包,本文主要方便自己后续可以阅读。1. 环境介绍开发工具 intellij idea 语言 Java 项目管理工具 maven 2. 程序准备本人准备了一个HelloWord程序,里面...原创 2019-09-01 11:19:49 · 7614 阅读 · 0 评论 -
java安全控制-简单概念的介绍与实现
Java作为互联网兴起时代的语言,从一开始Java就带有安全性的考虑:如何保证通过互联网下载到本地的Java程序是安全的,如何对Java程序访问本地资源权限进行有效授权,这些安全角度的考虑一开始就影响到Java语言的设计与实现。1. Java安全模型在java中执行程序分为本地和远程,本地代码默认视为信任,而远程代码被看作不可信的。对于本地代码,可以访问一切的本地资源,而在早期的Jav...转载 2019-01-03 19:34:03 · 456 阅读 · 0 评论 -
代理设计模式讲解
本文主要先讲解代理模式的概念,对代理设计模式 、动态代理设计模式描述与代码演示。目录1. 什么是代理设计模式2. 为什么会用代理设计模式3. 适用场景4. 代理设计模式5. 动态代理设计模式1. 什么是代理设计模式代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。2. 为什么会用代理...原创 2018-11-29 19:59:05 · 332 阅读 · 0 评论 -
JAVA AIO NIO BIO笔记
说道实现原理,还要从操作系统的IO模型上了解按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞...原创 2018-11-24 17:20:01 · 319 阅读 · 0 评论 -
java多线程风险-线程安全性
1. 什么是线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的。2. 线程安全方面的体现1.原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);2.可见性:一个线程对主内存的修改可以及时地...原创 2018-11-01 15:25:04 · 215 阅读 · 0 评论 -
HotSpot虚拟机对象探秘
本文章以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中的对象创建、分配、内存布局、访问的全过程1.对象的创建 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。 ...原创 2018-10-17 14:55:12 · 239 阅读 · 0 评论 -
Java内存区域与内存溢出异常
Java与C++之间有一堵由内存动态分配和垃圾手机技术所围成的“高墙”。根据java虚拟机规范的规定,Java虚拟机将管理的内存分为以下几部分。运行时数据区域程序计数器:是一块较小的内存空间,可以被看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作就是通过这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转与异常处理等功能都需要依赖这个计数器完...原创 2018-10-17 09:25:19 · 207 阅读 · 0 评论 -
实现线程的方式
1. 继承Thread类Thread类在包java.lang中,从这个类中实例化的对象代表线程,启动一个新线程需要建立Thread实例,Thread类中常用的两个构造方法如下: (1)public Thread(String threadName) (2)public Thread() 其中第一个构造方法是创建一个名称为threadName的线程对象创建一个新的线程...原创 2018-10-16 15:53:10 · 178 阅读 · 0 评论 -
NIO概述
NIO概述NIO是new I/O的简称,它表示新的一套Java I/O标准。具有以下特性:为所有的原始类型提供(BUFFER)缓存支持; 使用Java.nio.charset.Charset作为字符集编码解码解决方案; 增加通道(Channel)对象,作为新的原始I/O抽象; 支持锁和内存映射文件的文件访问接口; 提供基于Selector的异步网络I/O。与流式的I/O不同,...原创 2018-09-30 11:18:33 · 170 阅读 · 0 评论 -
JAVA热部署原理
JAVA热部署原理1、热部署是什么?对于Java应用程序来说,热部署就是在运行时更新Java类文件。2、热部署有什么用?可以不重启应用的情况下,更新应用。举个例子,就像电脑可以在不重启的情况下,更换U盘。OSGI也正是因为它的模块化和热部署,才显得热门。3、热部署的原理是什么?想要知道热部署的原理,必须要了解java类的加载过程。一个java类文件到虚拟机里的对象,要经...原创 2018-10-07 20:14:47 · 4255 阅读 · 1 评论 -
内存分配与回收策略
对象优先在Eden分配 大对象优先进入老年代 大对象:指需要大量连续内存空间的java对象,最典型的大对象是那种很长的字符串以及数组。package com.Studay.GC;public class MinorGC { public static final int _1MB = 1024*1024; /** * VM 参数: -verbose:gc -Xm...原创 2018-10-11 18:42:47 · 152 阅读 · 0 评论 -
MinorGC 与 Full GC 区别
新生代GC(Minor GC):是指在新生代的垃圾收集动作,因为java对象大多都具备朝生夕死的特性,所以Minor GC 非常频繁,一般回收速度也比较快。代码实例:package com.Studay.GC;public class MinorGC { public static final int _1MB = 1024*1024; /** * VM 参数: -...原创 2018-10-11 15:15:34 · 243 阅读 · 0 评论 -
mvc原理和mvc模式的优缺点
mvc原理和mvc模式的优缺点一、mvc原理 mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为...原创 2018-09-20 21:20:20 · 5973 阅读 · 0 评论 -
JVM虚拟机详解(转载的)
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4810168.html 【正文】声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类。那篇文章和本文...转载 2018-09-20 11:24:31 · 189 阅读 · 0 评论 -
Java类加载机制
一、Java类加载机制1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以...原创 2018-09-20 11:16:38 · 117 阅读 · 0 评论 -
从JVM看java多线程(转载)
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。多线程的目的为什么要使用多线程?可以简单的分两个方面来说:在多个cpu核心下,多线程的好处是显而易见的,不然多个cpu核心只跑一个线程其他...转载 2018-09-17 17:42:13 · 254 阅读 · 0 评论 -
java的类与继承
1. 类的讲解在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的)。 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初...原创 2018-09-17 16:06:40 · 136 阅读 · 0 评论