java学习笔记
文章平均质量分 64
看上去不像写代码的程序员
git:https://github.com/zhangbo512
展开
-
Java中的反射(2)——利用反射分析类的基本能力
接着上篇介绍了Class类的一些基本方法之后,我们再来介绍一下反射的基本应用class Persion{ public int age; private String name; public Persion(){ } public Persion(int age,String name){ this.age=age; this.name=name; }原创 2016-09-08 17:52:03 · 461 阅读 · 0 评论 -
Java的内存模型(1)
package com.zhang.thread.rammodel;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * @author zb * @version...原创 2018-12-28 15:59:52 · 197 阅读 · 0 评论 -
volatile和syn那点的那点事
package com.zhang.thread;/** * 内存 :int num = 10; * 线程1: * 缓存:int mun = 10; * 线程2: * 缓存:int num = 10; * * 非volatitle 变量: * 线程1修改 num = 100; * * 内存 :int num = 10; * 线程1: * 缓...原创 2018-12-13 20:08:11 · 282 阅读 · 0 评论 -
JVM的类加载机制
引用官方:虚拟机把描述类的数据从Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型叫做虚拟机的类加载机制。在详细介绍加载的每隔步骤之前,先来了解下总体步骤:加载验证准备解析初始化使用卸载从上面我们可以看出,一个类从加载到卸载总共会经历七个步骤。其中,验证、准备、解析三个步骤又被统称为连接。下面开始详细分析介绍这...原创 2018-10-05 23:21:31 · 176 阅读 · 0 评论 -
并发编程的利于弊
俗话说:众人shi柴火焰高。意思是更多的人去做一件事,往往会去的更好的效果。在编程的世界里,这个道理依然走的通。只不过这里不再是人,而是线程。让更多的线程去做一件事,在大部分情况下往往有利于提高效率。也许有人此时会有一个想法:既然存在这样的道理,那我在我的程序中拼命的创建线程,是不是就意味的我的程序运行速度会随之而来的越来越快?答案当然是No的,这样做只能说你太Yong.第一个问题:上下...原创 2018-10-15 16:38:38 · 137 阅读 · 0 评论 -
JVM的类加载器
什么是类加载器?ClassLoader就是类加载器,这个回答是否机智?(鬼脸)言归正传:还记得在上一篇关于类加载机制的文章中,有一个步骤叫做加载,其中有一个动作就是“通过一个类的全限定名来加载描述此类的二进制流文件”。实现这个动作的代码就叫做类加载器类与类加载器两个描述类的二进制流文件相同,这两个类是否就一样?答案是:不一样判断两个类是否相同的前提是:描述类的二进制流文件相同,并且加载...原创 2018-10-15 16:01:26 · 133 阅读 · 0 评论 -
JAVA虚拟机的垃圾收集
java对象什么时候变成垃圾?java对象的实列都存放于jvm的堆区中,但是堆的内存空间是有限的。在空间不足的时候,便会发抛出内存溢出的异常(OutOfMemoryError),通常在遇到这种情况的时候,我们可以选择把堆空间的内存设置到更大,方法:第一种 环境myeclipse修改在菜单window->preferecces.在JDK对话框中输入-Xms512m -Xmx1024m这个...原创 2018-09-28 13:37:03 · 208 阅读 · 0 评论 -
Java多线程编程学习笔记(一)
1. 什么是并发编程? 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。2. 并发编程的目的? 并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。 - 并发编程的挑战? 并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。并发编程往往会面临...原创 2018-05-17 15:02:27 · 236 阅读 · 0 评论 -
记录一个java对象从出生到死亡的全过程
话不多说,直接开干public class Persion implements Serializable { private Integer age; private String name; private String sex; private String address; //省略set/get方法}public class My_Main原创 2018-01-25 11:03:11 · 1238 阅读 · 0 评论 -
浅谈常见设计模式--单例模式 简单工厂模式
今题那站在这里和大家一起分享最近在一本书上看到的关于设计模式的内容,接下来要讲的设计模式有:单例模式简单工厂模式工厂方法和抽象工厂代理模式命令模式策略模式门面模式桥接模式观察者模式接下来详细介绍灭一种设计模式(注意:下面的讲解都是基于java语言)1.单例模式 定义:Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”java单例模式代码片段:原创 2016-11-13 17:04:33 · 6214 阅读 · 0 评论 -
MD5的使用和其相关
MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。 MD5转载 2016-10-25 22:21:59 · 3011 阅读 · 0 评论 -
Java中的反射(1)
首先介绍反射机制的功能:在运行中分析代码在运行中查看对象实现通用的数组操作代码利用Method对象,这个对象很像C++中的函数指针Class类: 学习反射即不得不接触一个新的类(Class类),在java运行时系统会为所有的对象维护一个被称为运行时的类型标识。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应的方法执行。 对于每个类而言,JRE都为其保留了一个不原创 2016-09-08 17:03:19 · 273 阅读 · 0 评论 -
java 堆 栈 方法区的简单分析
本文来源:本文参考来源 JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区 基础数据类型(Value type)直接在栈(stack)空间分配,方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间(reference),又在堆空间分配对象的类变量(object) 。方法的引用参数,在栈转载 2016-09-07 22:41:23 · 267 阅读 · 0 评论 -
Java中所有类的超类Object
Object的地位 在Java中所有的类都继承于Object类,但不用在声明一个类时显示的extends ObjectObject中几个重要的方法:1.equals方法: 用于检测一个对象是否等于另外一个对象,即判断两个对象是否具有相同的引用.然而对于大多数类来说这种检测没有太大意义。在实际中用户更倾向与更具自己的标准来判断两个对象是否相等。例如:如果来年各个雇员的姓名 薪水和雇佣日期都一原创 2016-09-05 21:42:48 · 3983 阅读 · 0 评论 -
Java中的多态和动态绑定
先来一张图表明类Employee,Manager,Secretary,Programmer, Executive的继承关系 在java中有一个用来判断是否应该设计为继承关系的简单法则,这就是 “is-a”规则,它表明自雷的每个对象也是超类的对象。在上图中所示,每个Manager对象也是Employee对象,但相反,每个Employee对象并不是Manager对象。用代码表示原创 2016-09-05 13:30:55 · 518 阅读 · 0 评论 -
浅谈Java不同于C++的数组
数组的定义:数组是一种数据结构,用来存储同一类型的数值的集合。提供整型下标访问。1.声明数组变量和初始化数组: int[] a;//声明数组变量需要制定属组中数据的类型 a=new int[100];//初始化数组并制定数组大小,大小一旦指定便不可改变为数组赋值for(int i=0;i<100;i++){ a[i]=i;}2.增强for循环 增强for循环格式:原创 2016-09-04 23:40:23 · 292 阅读 · 0 评论 -
Java中的反射(3)——在运行时使用反射分析实例化的对象
在上一篇我们学习了利用反射去分析一个类的能力,在这一篇我们将继续讲解利用反射去分析运行时的对象。我们都知道对象是类的实例化,因此在创建一个对象的时候我们一般都会为这个对象所属类的相应字段设置相应的值,如上一篇创建的Persion类,当我们想实例化一个Persion对象的时候都会这样做:Persion persion=new Persion(18,"张锡凯");//这里我们就为这个类的age字段和原创 2016-09-11 00:33:58 · 1319 阅读 · 0 评论 -
分布式Java应用系列文章-01
网络通信之协议在分布式java应用中,我们现在越来约需将传统的单体应用程序拆解为多应用程序。保证多应用程序可以运行得前提便是程序之间得正常通信,说到通信我们将引出本篇文章的核心-通信协议本篇将会介绍以下知识点:TCP/UDP-IPMulticastSocketTCP/UDP-IP1、英文含义:TCP(Transmission Control Protocol 传输控制协议...原创 2019-02-24 19:57:32 · 252 阅读 · 0 评论