0%

取出两个数的补码进行运算,在对补码(解决符号问题)进行位运算,然后反推原码就是结果

为什么

因为负数在运算时,需要转换正数的反码,然后由于符号位的问题,我们知道类似于时钟,10点到八点可以(-2)或者(+10),它们总和为12,同余,每十二进一位,同理,对于负数反码的符号位问题,可以加1进位,解决符号问题(-2的理论对应的是14,就是1110,而1110去掉符号位就是-2的补码,所以要反码加1,用补码进行运算解决符号问题)

阅读全文 »

类名首字母要大写,如果类名由几个单词构成,把么把它们拼接在一起(也就是说,不要用下划线来分隔名字),其中每个内部首字母都采用大写

方法,字段(成语变量)以及对象引用名称等,公认的风格与类的风格一样,只是标识符的第一个字母小写

阅读全文 »

类的组成

当类的成员没有初始化的时候,都会给默认变量
image
定义类的例子

1
2
3
4
5
6
7
//访问限定词   关键词    类名
public class ClassName{
//属性(变量,字段)

//方法

}
阅读全文 »

简介

大致分为四种

  1. Set :
    • 代表无需,不可重复的集合。
  2. List:
    • 代表有序,重复的集合
  3. Map:
    • 代表具有映射关系的集合
  4. Queue:
    • 代表队列集合实现

和数组的区别

  1. 数组长度必须得初始化长度,长度是要提前知道。容易固定无法动态改变。但是集合可以保存数量不确定的数据。同时还能保存映射关系数据(键值对 key-value)
  2. 数组的元素可以对象或者基本类型,而集合只能是对象(保存对象的引用而非本身)
  3. 集合有着封装,继承,多态的特性,通过方法和属性实现复杂操作。
阅读全文 »

一. 概念

(synchronized) java 中的关键字,是利用锁的机制来实现同步的。

特性

  1. 互斥性:即在同一时间只也许一个线程持有某个对象锁,同一时间只有一个线程对需要同步的代码块进行访问。
  2. 必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁时应获得最新共享变量的值),否则另一个线程可能是在本地缓存的某个副本上继续操作从而引起不一致。
阅读全文 »

surper

指向当前对象的父(超)类对象的一个指针,这个超类指的是离自己最近的一个父类

用法

引用成员变量

当子类的成员变量与父类同名
使用 super.xxx。 来引用父类的成员。

引用成员方法

当子类的成员方法与父类同名,可以用 super 来区分。写法也是 super.xxx(参数)。

引用构造函数

super(参数),调用父类的某个构造函数,并且要成为使用这个关键字的构造方法(只能在构造方法中使用,并且不能与this 同时使用)的第一条语句。

阅读全文 »

异常指的程序或者电脑发生不正常的现象所引发程序无法执行和崩溃,例如:文件找不到,网络连接失败等待。

在 java 中,异常都是对象,是 Throwable 的子类,Throwable 的子类都描述着不同的异常和错误。如下图,Java 异常类层次结构图
image

一 异常的架构体系

1.1Throwable(超类)

所有异常的祖先,用两个重要的子类:Exception(异常),Error(错误),两者各自也包含了大量的子类。

阅读全文 »

概述

在现实生活中,我们要存储某些信息的时候,比如,我们使用的微信就是一个手机号对应一个微信账户,这是一种成对的存储关系。
Map 就是用来存储“键(key) 值(value)”对的。通过键识别,所以键对象不能重复。

对比 Collection 中的集合,Map 集合中的元素是成对存在,每个元素由键与值两部分组成,通过键找到所对应的值。

注意的是:Map 集合中不能包含重复的键,值可以重复;每个键对应一个值。(如果重复了键将会覆盖旧的值,重复是根据 equals 方法判断)

阅读全文 »

有序集合,也许存放重复的元素;

实现类

ArrayList

数组实现,查询块,增删慢,轻量级。(线程不安全)

底层是 Object 数组,动态的,通过判断大小是否超过来 copy 数组,并且重新赋予新的空间。能够拥有数组的查找速度快的特点,但是,也造成了增删慢的缺点。

阅读全文 »
copy