JAVA
h_lizeming
这个作者很懒,什么都没留下…
展开
-
java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并...转载 2018-10-26 12:21:08 · 99 阅读 · 0 评论 -
Constructor
java.lang.reflect.Constructor一、Constructor类是什么 Constructor是一个类,位于java.lang.reflect包下。 在Java反射中 Constructor类描述的是 类的构造方法信息,通俗来讲 有一个类如下: 1 package com.testReflect; 2 public class Constructor...原创 2019-03-20 09:15:11 · 2851 阅读 · 0 评论 -
java中package(包)的使用理解
最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包。一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了许多意想不到的错误。之后自己查阅了许多博客以及stackoverflow上的一些讲解,再结合编写代码试验,总算是稍微弄清楚了关于package的使用,在此为自己的理解做一个笔记。package的简...原创 2019-03-12 16:30:59 · 8439 阅读 · 0 评论 -
详解内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类。public class OuterClass { private String name ...转载 2019-03-12 18:27:58 · 121 阅读 · 0 评论 -
一个.java文件可以有多个class
一个.Java文件中可以有多个class类,但是只有一个类是用public修饰的,其他类都是无修饰的。(修只可以public/abstract/final/和无修饰符,不能是其他的protected/private等修饰符。)。值得注意的是:用public修饰的类 必须与XXX.Java 名字一致。不同修饰的作用于:public:跨包可访问 无修饰符:包内可访问说到这里,有人可能有疑...原创 2019-03-12 19:22:31 · 3787 阅读 · 0 评论 -
java提高篇----实现多重继承
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承(这个和C++有很大区别)。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲...原创 2019-03-12 19:30:44 · 133 阅读 · 0 评论 -
大型网站技术架构 提纲
序《大型网站技术架构》是自己接触的第一本架构知识的书籍,还是在14年时买的实体书,前后读了几遍,颇有所得,后来实体书被朋友借走再没归还,也就没再翻过。个人觉得这本书作为一本入门书籍颇为合适,里面对架构知识的各个方面都有比较全面的讲解,通俗易懂,由于篇幅并不长且面面俱到,因此可能部分深度略有不足,但至少能使读者对网站架构的方法和思维方式有了比较全面的了解。同时也对架构师内涵和技术管理有所阐述...原创 2019-03-18 15:40:13 · 247 阅读 · 0 评论 -
执行与赋值顺序
1.父类静态块2.自身静态块3.父类块4.父类构造器5.自身块6.自身构造器程序的赋值步骤为:1.父类的静态变量赋值2.自身的静态变量赋值3.父类成员变量赋值4.父类块赋值5.父类构造器赋值6.自身成员变量赋值7.自身块赋值8.自身构造器赋值...原创 2019-03-29 16:54:57 · 172 阅读 · 0 评论 -
泛型
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。本文参考java 泛型详解、Java中的泛型方法、java泛型详解1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传...原创 2019-03-19 20:30:13 · 111 阅读 · 0 评论 -
final
在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。一、 final数据 有时候数据的恒定不变是很有用的,它能够减轻系统运行时的负担。对于这些恒定不变的数据我可以叫做“常量”。“常量”主...原创 2019-03-14 16:53:39 · 82 阅读 · 0 评论 -
IntelliJ IDEA配置Tomcat(完整版教程)
IntelliJ IDEA配置Tomcat(完整版教程)查找该问题的童鞋我相信IntelliJ IDEA,Tomcat的下载,JDK等其他的配置都应该完成了,那我直接进入正题了。1.新建一个项目2.由于这里我们仅仅为了展示如何成功部署Tomcat,以及配置完成后成功运行一个jsp文件,我仅勾选JavaEnterprise-->Web Application-->Next...转载 2018-11-20 19:38:57 · 4208 阅读 · 0 评论 -
对象赋值
Java中的对象克隆(复制)一个简单的变量复制int old = 20;int new = old;对于基本数据类型的复制都是等同的——boolean,char,byte,short,float,double.long复杂变量——对象/*** Created by CaiTieZhu on 2018/9/23 18:12*/class People{ pri...原创 2019-03-14 09:26:48 · 160 阅读 · 0 评论 -
序列化赋值
我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常明显。然而我们知道拷贝分为深拷贝和浅拷贝之分,但是浅拷贝存在对象属性拷贝不彻底问题。关于深拷贝、浅拷贝的请参考这里:对象赋值一、浅拷贝问题我们先看如下代码:public class ...原创 2019-03-14 09:44:09 · 442 阅读 · 0 评论 -
匿名内部类
内部类还存在很多其他细节问题,所以就衍生出这篇博客。在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类、匿名内部类使用的形参为何要为final。一、使用匿名内部类内部类匿名内部类由于没有名字,所以它的创建方式有点儿奇怪。创建格式如下:new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分...转载 2019-03-14 10:29:21 · 139 阅读 · 0 评论 -
强制类型转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的...原创 2019-03-14 11:19:13 · 101 阅读 · 0 评论 -
代码块
在编程过程中我们可能会遇到如下这种形式的程序:public class Test { { //// }} 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。在Java中代码块主要分为四种:一...原创 2019-03-14 11:25:10 · 1404 阅读 · 0 评论 -
equals
equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:public boolean equals(Object obj) { return (this == obj); } 我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的是内存地址,所以说使用...原创 2019-03-14 11:39:23 · 126 阅读 · 0 评论 -
String
可以证明,字符串操作是计算机程序设计中最常见的行为。一、String 首先我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象。查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象。 字符串为对象,那么在...原创 2019-03-14 16:09:17 · 84 阅读 · 0 评论 -
SessionID的本质
一、客户端用cookie保存了sessionID客户端用cookie保存了sessionID,当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,有相应的权限;如果没有找到对应的sessionID,这说明:要么是我们把浏览器关掉了(后面会说明为什 么),要么sessio...原创 2019-03-23 12:13:10 · 167 阅读 · 0 评论