一:基础类型运算

大部分的指令都没有支持byte、char、short,没有任何指令支持boolean类型。
编译器在编译期或者运行期将byte和short类型的数据带符号扩展为相应的int类型数据,将boolean和char类型数据零位扩展为相应的int类型数据。
与之类似的,在处理byte、char、short和boolean类型的数组时,也会转换成对应的int类型的字节码指令来处理。
因此,大多数对于byte、char、short和boolean类型数据的操作,实际上都是使用相应的int类型作为运算类型的。

二:final关键字修饰的方法不能被重写,可以被重载,可以被继承

class TestAbstract{
public TestAbstract() {
System.out.println("asd");
} public final String get() {
String obj=new String("ffff");
return obj;
}
} class taT extends TestAbstract{
public static int a; public String get(int a) { //重载override,overwrite
this.a=;
return "fafw";
}
}

可以正常继承使用

三:静态成员方法的访问修饰符

静态方法的访问修饰符:都可以用于修饰静态成员方法public,protected,default(注意default不能秀出来),private

注意:若是使用private修饰静态成员方法,则对外不可见,不允许直接使用类名.成员方法调用,可以使用静态成员方法进行使用静态成员方法调用

四:静态成员方法是属于特定类,不能在类之间继承

class taT extends TestAbstract{
public static int a; public String get(int a) {
this.a=;
return "fafw";
} static void say() { } public static void say2() {
System.out.println("father");
} protected static void say3() { } //可以被其他静态成员方法访问,但是不允许直接使用类名.静态成员名调用
private static void
say4() { } } public class Test extends TestA implements TestTable{ public Test(int i) {
super(i);
// TODO Auto-generated constructor stub
} public static void say2() { //不属于重写,只是在这个类中包含了这个静态方法而已,与父类的静态方法无关
System.out.println("child");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
taT.say(); Test.say2(); //调用的是本类的静态方法,是允许的
//Test.say() say3() say4()都是不对的,因为这个类中并没有这些静态方法

} }

注意:

由于静态方法是属于某个特定类,而不具有继承属性,故不能在子类中实现,必须在本类中实现,故:虚成员函数不可能是static成员函数

五:求余-虽然C语言不允许求余符号后面为小数,但是java允许

六:接口和抽象类

(一)接口可以被继承:接口继承接口

(二)抽象类可以继承实体类:还是抽象类

七:equals和==(重点

    public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a1=new Integer();  //是在堆上,所有a1 a2虽然是不可变对象,但是内存地址不同,所以不是指向一个地址内存
Integer a2=new Integer();
if(a1==a2) {
System.out.println("a1==a2");
} if(a1.equals(a2)) {
System.out.println("a1 equals a2");
}
}

(一)对于“==”

基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
引用数据类型:当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址(确切的说,是堆内存地址)。

(二)对于equals

JAVA当中所有的类都是继承于Object这个超类的,在Object类中定义了一个equals的方法,equals的源码是这样写的:
public boolean equals(Object obj) {
//this - s1
//obj - s2
return (this == obj);
}
可以看到,这个方法的初始默认行为是比较对象的内存地址值,一般来说,意义不大。
所以,在一些类库当中这个方法被重写了,
如String、Integer、Date。
在这些类当中equals有其自身的实现(一般都是用来比较对象的成员变量值是否相同),
而不再是比较类在堆内存中的存放地址了。
所以说,对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。

(三)总结

 == 的作用:
  基本类型:比较的就是值是否相同
  引用类型:比较的就是地址值是否相同
equals 的作用:
  引用类型:默认情况下,比较的是地址值。
注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同

八:8个基本类型的包装类对象为不可变对象(一定范围)

JAVA核心技术I---JAVA回顾的更多相关文章

  1. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

    第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库  如果想要有奇特的绘 ...

  2. java核心技术卷一

    java核心技术卷一 java基础类型 整型 数据类型 字节数 取值范围 int 4 +_2^4*8-1 short 2 +_2^2*8-1 long 8 +_2^8*8-1 byte 1 -128- ...

  3. 《Java核心技术卷1》拾遗

    之前对Java的基础知识有过学习,现在开始学习<Java核心技术卷1>,将一些新学的知识点,做简要记录,以备后续回顾: 1.double (1)所有的“非数值”都认为是不相同的 if(x= ...

  4. 杨晓峰-Java核心技术-6 动态代理 反射 MD

    目录 第6讲 | 动态代理是基于什么原理? 典型回答 考点分析 知识扩展 反射机制及其演进 动态代理 精选留言 Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAnd ...

  5. Java核心技术点之泛型

    1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小 ...

  6. Java核心技术点之集合框架

    1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容 ...

  7. Java核心技术点之内部类

    1. 为什么要使用内部类     内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到它所在外部类的私有属性及方法:第二,外部类无法实现对同一 ...

  8. Java核心技术点之动态代理

    本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理.由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一.概述 1. 什么是代 ...

  9. 读《java核心技术卷一》有感

    过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...

  10. java核心技术学习笔记之一程序设计概述

    Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向 ...

随机推荐

  1. BZOJ3291Alice与能源计划——匈牙利算法+模拟费用流

    题目描述 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验.为 了方便,我们可以将火星抽象成平面,并建立平面直角坐标系.火星上一共有N个居民点 ...

  2. Codeforces Round #514 (Div. 2) C. Sequence Transformation 思维构造

    题意 给出一个1-n的集合   gcd 集合里面的所有数  得到的 一个 数   然后自己选择删去一个数   要使得到的数 构成的数列 的字典序最大 思路: gcd所有数 那gcd得到的数肯定要小于数 ...

  3. SCOI2016幸运数字(树剖/倍增/点分治+线性基)

    题目链接 loj luogu 题意 求树上路径最大点权异或和 自然想到(维护树上路径)+ (维护最大异或和) 那么有三种方法可以选择 1.树剖+线性基 2.倍增+线性基 3.点分治+线性基 至于线性基 ...

  4. [APIO2012]守卫

    近日状态并不是很好, 很不稳, 思路也不是很清晰 希望自己能走出来 题意:有序列1~n 现给出两种区间 区间0:序号在[x, y]的节点不能有忍者 区间1:序号在[x, y]的节点区间里至少有一个忍者 ...

  5. Hdoj 1312.Red and Black 题解

    Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...

  6. rt-thread是如何做到通过menuconfig配置将相应文件加入工程和从工程中除去

    @2019-01-25 [小记] 添加与删除文件的机制是: menuconifg 所显示的菜单是由一系列 Kconfig 文件构成的,这些菜单实际就是一系列的宏控制,而这些宏又控制着一系列的 SCon ...

  7. bzoj3796(后缀数组)(SA四连)

    bzoj3796Mushroom追妹纸 题目描述 Mushroom最近看上了一个漂亮妹纸.他选择一种非常经典的手段来表达自己的心意——写情书.考虑到自己的表达能力,Mushroom决定不手写情书.他从 ...

  8. [NOI2005]月下柠檬树(计算几何+积分)

    题目描述 李哲非常非常喜欢柠檬树,特别是在静静的夜晚,当天空中有一弯明月温柔 地照亮地面上的景物时,他必会悠闲地坐在他亲手植下的那棵柠檬树旁,独自思 索着人生的哲理. 李哲是一个喜爱思考的孩子,当他看 ...

  9. centos7下zookeeper集群安装部署

    应用场景:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件. 它是一个为分布式应用提供一致性服务的软 ...

  10. nginx常用配置

    nginx.conf配置文件详解 其主要分为几个模块 全局快 从开始到events块之间的一部分内容,其作用域为全局作用域 events块 主要负责Nginx服务器与用户的网络连接 常用设置: 是否开 ...