由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能,这些标记字段组成了对象头。 1.对象头形式 JVM中对象头的方式有以下两种(以32位JVM为例): 1.1.普通对象|--------------------------------------------------------------| | Object Header (64 bits) | |------------------------------------|--------...
在类中声明一个方法,这个方法没有实现体,是一个“空”方法 这样的方法就叫抽象方法,使用修饰符“abstract" 当一个类有抽象方法的时候,该类必须被声明为抽象类 步骤1:抽象类步骤2:抽象类可以没有抽象方法步骤3:抽象类和接口的区别步骤4:练习-抽象类步骤5:答案-抽象类 步骤 1 : 抽象类 为Hero增加一个抽象方法 attack,并且把Hero声明为abstract的。 APHero,ADHero,ADAPHero是Hero的子类,继承了Hero的属性和方法。 但是各自的...
1 IOBigDecimal/BigInteger概述 :BigDecimal:常用来解决精确的浮点数运算。 BigInteger:常用来解决超大的整数运算。创建对象:BigDecimal.valueOf(2); 常用方法: add(BigDecimal bd): 做加法运算 substract(BigDecimal bd) : 做减法运算 multiply(BigDecimal bd) : 做乘法运算 divide(BigDecimal bd) : 做除法运算 divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用 setScale(保留位数,舍入方式):同上 pow(int n):...
事务(ACID) 是在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。 事务的4个特性(ACID): 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性 隔离性 (isolation)...
java方法是在栈幀中执行,栈幀是线程私有栈的单位,执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间,栈幀分为三个区域: 1 . 操作数栈,用来保存正在执行的表达式中的操作数,数据结构中学习过基于栈的多项式求值算法,操作数栈的作用和这个一样 2 . 局部变量区,用来保存方法中使用的变量,包括方法参数,方法内部声明的变量,以及方法中使用到的对象的成员变量或类的成员变量(静态变量),最后两种...
变量有两种类型 基本类型 和类类型 参数也是变量,所以传参分为?基本类型传参?类类型传参 步骤1:基本类型传参步骤2:引用与=步骤3:类类型传参步骤4:练习-传参步骤5:答案-传参步骤?1?:?基本类型传参基本类型传参?在方法内,无法修改方法外的基本类型参数public class Hero { ??????? ????String name;?//姓名 ??????? ????float hp;?//血量 ??????? ????float armor;?//护甲 ??????? ????int moveSpeed;?//移动速度 ???? ????p...
一. Callable接口与Runnable接口区别 创建java线程,我们经常使用两种方式:一是直接继承Thread 另一种是实现Runnable接口但这两种方式有一个缺陷:在执行完任务之后无法直接获取执行结果。 1. 接口定义 1.1 Callable接口 public interface Callable<V> {V call() throws Exception; } 1.2 Runnable接口 public interface Runnable {public abstract void run(); } 2. 区别Runnable没有返回值;Callable可以返回执行结果(泛型)。...
前言 大概的了解了NIO的运行与三个组件 Java网络编程(4)NIO的理解与NIO的三个组件 并详细学习了:Buffer和Channel Java网络编程(5)NIO - Buffer详解 Java网络编程(6)NIO - Channel详解 接下来完成Selector的学习 目录Selector作用 Selector类继承关系 常用方法 SelectionKey 一个聊天系统案例 总结Selector作用 NIO编程的结构:选择器让一个线程能够处理多个通道,选择器轮询注册在其上的通道,Selector只能管理非阻塞的通道...
1. 简介 ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。 ArrayList类声明如下:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.SerializableArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的Copy...
ava中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建立清晰而深入的认识。 总体介绍 前面以Java ArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列叫做PriorityQueue,即优先队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最...
2019年5月从美国回到上海,由于一切都不安定,先在旅馆里宅了4个多月,写完《精通JPA与Hibernate:Java对象持久化技术详解》,就开始写这本书。现在,正是新冠病毒疫情还没结束之际,本书克服种种困难,如期和读者见面了。 我们一不小心,就会被一种潜在的观念暗示:只要忙过了这一阵,将来就能过上高枕无忧的生活。实际上,生活中总是有各种意外的事情发生,小到个人家庭的琐事,大到国家社会的暂时的不安定。为了能随遇而安,就得...
详解基于JWT的token认证(Java实现)1.简介2.JWT2.1 header2.2 payload2.3 signature3.使用4.例子 观前提示: 本文所使用的IDEA版本为ultimate 2019.1,JDK版本为1.8.0_141。 1.简介 在计算机身份认证中是令牌(临时)的意思,token其实说的更通俗点可以叫暗号,在一些数据传输之前,要先进行暗号的核对,不同的暗号被授权不同的数据操作。 2.JWT JSON Web Token,JSON Web令牌,我们下面的例子也是基于JWT实现的token认证,如下是...
一:JDBC sun:提供了一套通用性的接口:可以连接任何的数据库: 连接数据库的具体得到实例,具体的数据库厂商实现的。 连接数据的步骤(别忘了复制jar包)
一:概念List是Java集合Collection中的一个接口,一般用ArrayList类和LinkedList类去实现这个接口。Collection集合还有其他接口:Map,Set(在我的另一篇博客)二:LIST的使用List的常用方法 boolean add(E e) //尾插 e void add(int index, E element) //将 e 插入到 index 位置 boolean addAll(Collection<? extends E> c) //尾插 c 中的元素 E remove(int index) //删除 index 位置元素 boolea...
1.Set接口介绍 Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。我们在前面通过List学习的方法,在Set中仍然适用。因此,学习Set的使用将没有任何难度。 Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复指不允许加入重复的元素。 Set 集合有多个子类,这里我们介绍其中的 HashSet、LinkedHashSet 、TreeSet这三个集合。 2. HashSet类详解 HashSet是采用哈希...