1.boolean 类型不可以用数字表示

2.switch 的表达式expr1只能是整数型的值或者是 enum 枚举类型的常量值,

包含 byte、short、int 和 char,不能是字符串或对象,也不能是 long 型的值。

3.属性:类的属性就是对象所具有的静态属性

定义规则:访问修饰符  修饰符  类型  属性名称  =  初始值

public    static String   s   =   “123”;

4.方法就是对象所具有的动态功能

定义规则:

访问修饰符  修饰符  返回值类型  方法名称 (参数列表) throws 异常列表 {方法体}

public    static void      main    (String[] args)          {}

5.new关键字的功能:

(1)为对象实例分配内存空间

(2)初始化对象实例

6.this关键字:用来指向当前对象或类实例

功能:(1)点取成员

(2)区分同名变量

(3)作为方法名来初始化对象

7.java类第一步运行:  public static void main(String[] args) {...}

8.初始化一个类必先初始化它的属性

9.局部变量必须在使用之前“手工”初始化

10.凡是用new关键字创造的对象实例都是应用类型

在java里除去基本数据类型的其他类型都是应用数据类型

String类型比较特殊殊

11.

class A

{

public String name = "";

}

public class T1 extends Test

{

private void t(A a)

{

// 如果不加这句

// a = new A();

// main方法中对象实例a的name值将会被修改

// 最后会都输出"t的方法"

a = new A();

a.name = "t的方法";

System.out.println("t.a == " + a.name);

}

public static void main(String[] args)

{

T1 t = new T1();

A a = new A();

a.name = "main的方法";

t.t(a);

System.out.pritnln("main.a == " + a.name);

}

}

输出:

t的方法

main的方法

12.初始化子类必先初始化父类

构造方法不能被继承

13.super 关键字的功能

(1)点取父类中被子类隐藏了的数据成员

(2)点取已覆盖了的方法

(3)作为方法名表示父类构造方法

对 super 的调用必须是构造方法的第一个语句

无论是 super 还是 this 都必须放在构造函数的第一行

14.编译时看数据类型,运行时看实际的对象类型(new操作符后跟的构造方法是哪个类的)。

一句话:new谁就调用谁的方法。

15.覆盖方法的规则

(1)覆盖方法的返回类型,方法名称,参数列表必须与它所覆盖的方法相同

(2)覆盖方法不能比它所覆盖的方法的访问性差,即访问权限不允许缩小

(3)覆盖方法不能比它所覆盖的方法抛出更多的异常

16.重载:方法名相同,参数列表不同

参数列表不同包括:个数不同,类型不同,顺序不同等等

构造方法也可以重载

public void t1(int a) {}

public int t1() {}

方法重载的返回类型可以相同也可以不同。

17.instanceof 运算符的功能

用来判断实例变量是否属于某种类的类型

18.多态类型的强制转换

向上强制类型转化类层次总是允许的,而且事实上不需要强制类型转换运算符。可由简单的赋值实现。

严格讲,不存在向下类型转换。

19.static 属性的内存分配

一个类中,一个 static 变量只会有一个内存空间,虽然有多个类实例,

但这些类实例中的这个 static 变量会共享一个内存空间。

20.static 的变量是在类装载的时候就会被初始化。

21.static 的基本准则

(1)一个类的静态方法只能访问静态属性

(2)一个类的静态方法不能够直接调用非静态方法

(3)若访问控制权限允许,static 属性和方法可以使用对象名家‘.’方式调用;

当然也可以使用实例加‘.’方式调用

(4)静态方法中不存在当前对象,因而不能使用“this”,当然也不能使用“super”

(5)静态方法不能被非静态方法覆盖

(6)构造方法不允许声明为static的

注:非静态变量只属于实例,并只能通过实例应用被访问。

22.final 修饰符:在java中申明类、属性和方法时,可使用关键字final来修饰。final所标记的

成分具有“终态”的特征,表示最终的意思。

23.final 的具体规则:

(1)final 标记的类不能被继承

(2)final 标记的方法不能被子类重写

(3)final 标记的变量(成员变量或局部变量)只能赋值一次

(4)final 标记的成员变量必须在声明的同事赋值,如果在声明的时候没有赋值,那么只有一次

赋值的机会,而且只能在构造方法中显示赋值,然后才能使用。

(5)final 标记的局部变量可以只声明不赋值,然后再进行一次性的赋值

(6)final 一般用于标记那些通用性的功能、实现方式或取值不能随意更改的成分,以避免被误用

24.static 不能修饰局部变量,final可以(包括参数列表)。

(3)“==”进行比较的时候,引用类型数据比较的是引用,及内存地址,基本数据类型比较

的是值。

25.(1)如果将引用类型(即,任何类的类型)的变量标记为 final,那么该变量不能指向任何其他

象。但可以改变对象的内容,因为只有引用本身是 final 的。

(2)final 除了可以使用在类定义、属性上、方法上之外,还可以用于方法内部,比如参数列表

或者局部变量都是可以的。

26.由于String类值的不可变性,当String变量需要经常变换其值时,应该考虑使用StringBuffer

或StringBuilder类,以提高程序效率。

27.数组的静态性:数组一旦被创建,就不能更改数组的长度。

28.equals方法:Object类定义的equals方法用于判别某个指定的对象与当前对象(调用

equals方法的对象)是否等价。数据等价的基本含义是指两个数据的值相等。

29.equals方法与“==”运算符的关系

(1)equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型

(2)默认的equals()方法比较的是内存地址,基本等同于“==”,但对于File、String、

Date及包装类来说,是比较的值而不是内存地址

(3)“==”进行比较的时候,引用类型数据比较的是引用,及内存地址,基本数据类型比较

的是值。

30.覆盖equals方法的一般步骤如下:

(1)用==检查是否参数就是这个对象的引用

(2)判断要比较的对象是否为null,如果是null,返回false

(3)用instanceof判断参数的类型是否正确

(4)把参数转换城合适的类型

(5)比较对象属性值是不是匹配

31.覆盖equals方法一定要连带覆盖hashCode方法

32.对于经常要改变值的字符串应该使用StringBuffer和StringBuilder类,这两个类功能基本

相似,区别主要在于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安

全的,相比而言StringBuilder类会略微快一点。

33.抽象类简单来说,使用abstract修饰的类就是抽象类。

abstract 修饰符可以与类和方法一起使用。被修饰的类不能被实例化,被修饰的方法必须在包

含此方法的类的子类中被实现。

public abstract class Test{    //抽象类定义

public abstract void doItByHand();    // 抽象方法定义

}

34.有抽象方法的类一定是抽象类,抽象类不一定有抽象方法。

35.不能有抽象构造方法或抽象静态方法。abstract 类的子类为它们父类中的所有抽象方法提供实现,

否则它们也是抽象类。

36.在下列情况下,一个类将成为抽象类:

(1)当一个类的一个或多个方法是抽象方法时;

(2)当类是一个抽象类的子类,并且不能为任何抽象方法提供所有实现细节或方法主体时;

(3)当一个类实现一个接口,并且不能为任何抽象方法提供实现细节或方法主体时;

37.接口是一种特殊的抽象类,这种抽象类只包含常亮和方法的定义,而为没有变量和方法的实现。

定义接口的语法格式:

访问修饰符 修饰符 interface 接口名称

{

抽象属性集

抽象方法集

}

38.    (1)接口中声明的属性默认为,也只能是 public static final 的, 因而在常量声明时可以省略这些修饰符

(2)接口中只能定义抽象方法,这些方法默认为 public abstract 的、也只能是 public abstract 的,

因而在声明方法时可以省略这些修饰符

(3)和继承抽象方法类似,Java类可以“实现”接口

39.    接口可以多继承

40.接口的基本作用

(1)声明方法,期望一个或更多的类来实现该方法。

(2)揭示一个对象的编程接口,而不揭示类的实际程序体。

(3)捕获无关类之间的相似性,而不强迫类关系。

(4)可以作为参数被传递到在其它对象上的调用方法中

41.多重接口:

一个类实现多个接口就被称为多重接口。

一个类只可以继承一个父类,但可以实现多个接口。

类不可以多继承,因为两个父类的变量和方法可能重复。而接口不会继承变量,即便两个接口方法定义相同,

接口中没有方法实现,类中也只有一个方法实现。

42.接口和抽象类的选择

(1)优先选用接口,尽量少用抽象类

选择抽象类的时候通常在如下情况:

(2)需要定义子类的行为,有要为子类提供共性的功能。

43.try {} catch {} 的语法

try {

// 可能出错的代码

} catch (异常类型 e) {

// 异常处理代码

}

44.当多个catch块存在的时候,从上往下catch异常的范围应该从小到大,因为catch块的运行机制是找到一个

匹配的就进行处理,如果把范围大的放在前面,那么后面的代码就没有机会运行了,这会是一个编译异常。

45.finally 块

(1)finally 块:无论是否出现异常,都会运行的块。

(2)通常在 finally 块中可以编写资源返回给系统的语句,通常这些语句包括但不限于:

1.释放动态分配的内存块

2.关闭文件

3.关闭数据库结果集

4.关闭与数据库建立的连接

finally 紧跟这最后一个块,是可选的,不论是否抛出异常, finally块总会被执行。

语法如下:

try{

}catch(异常类型 e)

{

}finally{

}

46.try、catch、finally 块的关系

(1)try 块不能单独存在,后面必须跟 catch 块或者 finally 块

(2)三者之间的组合为: try - catch、 try - catch - finally、 try - finally

(3)一个 try 块可以有多个 catch 块,从上到下多个 catch 块的范围为从小到大

47.throw 语句用来从代码中主动抛出异常。throw 的操作数是人一种异常类对象。下面是 throw 关键字的一

个示例:

try{

int i = 5/0;

} catch (ArithmeticException i) {

throw new Exception ("Can not be divided by zero!");

}

48.throws 语句

(1)throws 用来在方法定义时声明异常,其后列出了此方法可能抛出的异常列表。

(2)Java中对异常的处理有两种方法,一个就是 try - catch, 然后自己处理;一个就是不做处理,

向外 throws,由别人去处理。

public static void main(String[] args) throws Exception {}

java 私塾_Java私塾基础note相关推荐

  1. java私塾 java篇_Java私塾跟我学系列——JAVA篇 五、

    五:Java如何做到让机器理解我们想要做的东西 用一个图来描述这个过程会比较容易理解: 1:编写代码 首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程 ...

  2. java 国际化_Java国际化基础

    关于本教程 本教程是关于什么的? 本教程向您介绍Java编程语言对多语言和多国家/地区环境的支持. 本课程首先对国际化原则和概念进行一般性讨论,然后继续对Java国际化支持的特定领域进行概述. 最后几 ...

  3. java厨房_Java多线程基础

    目录: 进程和线程 为什么使用多线程? 多线程的创建方式 Runnable与Thread两种方式比较 start()与run()方法 线程的生命周期/状态转换 常用方法使用与解读 线程的优先级 守护线 ...

  4. 0基础java语法_Java零基础教程(二)基础语法

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  5. java 考试题_JAVA语言基础内部测试题(50道选择题)

    JAVA语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分.)(每题2分) 没有注明选择几项 ...

  6. java逆向_Java逆向基础之异常

    异常 由之前月份处理修改的例子 //清单1IncorrectMonthException.javapublic class IncorrectMonthException extends Except ...

  7. java 二进制运算_java二进制运算基础知识点详解|chu

    一.二进制位运算 1. 按位与(&) 位运算实质是将参与运算的数字转换为二进制,而后逐位对应进行运算. 按位与运算为:两位全为1,结果为1,即1&1=1,1&0=0,0& ...

  8. 实例化Java对象_Java面向对象基础之对象实例化

    1.实例化对象的过程可以分为两部分,例如下面代码: Person per = new Person(); 该代码分为两部分: 第一,声明对象:Person per,这部分是在栈内存中声明的,与数组一样 ...

  9. 递归java程序_JAVA编程基础之递归结构

    递归结构 递归是一种常见的解决问题的方法,即把问题逐渐简单化. 递归的基本思想就是 自己调用自己 ",一个使用递归技术的方法将会直接或者间接的调用自己.利用递归可以用简单的程序来解决一些复杂 ...

  10. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

最新文章

  1. mysql锁表_MYSQL锁表问题的解决方法
  2. ubuntu下pytorch
  3. c 数据压缩算法_CCSDS图像压缩算法之我见(一)
  4. Mysql 性能优化20个原则(2)
  5. 服务器系统分区 是啥,服务器系统盘分区
  6. linux lsnrctl命令不存在,linux – oracle lsnrctl TNS-12545:连接失败,因为目标主机或对象不存在...
  7. 白事碰上红事,徐渭应景吟诗
  8. 【MATLAB中UIGETFILE函数的用法】
  9. 扫描全能王30元/月的OCR文字识别免费使用方法
  10. c语言求阶乘的两种算法(递归和循环)
  11. 【HTML】极简个人主页设计
  12. CSAPP lab2 二进制拆弹 binary bombs phase_5
  13. 请问如何让路由器信号增强
  14. 设计师使用的网站推荐
  15. 云宏广东省中医院虚拟化管理平台
  16. ​UG塑胶模具设计结构分析是如何挤压成型的
  17. SVN搭建文件服务器
  18. Ubuntu安装腾讯会议提示不支持wayland
  19. 使用cordova把h5应用打包成apk
  20. Kotlin基础 9 - 高阶函数

热门文章

  1. 高清卫星影像DEM数据免费下载,3款软件4个网站推荐收藏!
  2. Hadoop入门(一篇就够了)
  3. Java实例变量和类变量
  4. c++编写手机小游戏代码_24个c++游戏源码
  5. 现在出纳记账手写还是用计算机,请问:出纳现金日记账和银行日记账是否一定要用手写归档能否用电脑打印归档?...
  6. 2021美赛成绩查询证书下载
  7. 同济大学 线性代数 第六版 pdf_线性代数同济第六版第六章课后习题答案!
  8. Wordpress昼夜切换导航主题模板 NDNAV主题
  9. PDF转图片文字丢失问题解决
  10. IDC发布人工智能白皮书:信息流引领人工智能新时代