java 3.1415926_Java 学习笔记-入门-i

概述

作为一个面向对象语言,java支持

- 多态

- 继承

- 封装

- 抽象

- 类

- 对象

- 实例

- 方法

- 重载

源文件规则

- 一个源文件中只有一个 public 类,名称和源文件名称一致

- 可以有 0 或多个非 public 类

- package 语句应该在文件首行

- import 语句应该在 package 语句与类定义之间

HelloWorld 例程

//HelloWorld.java

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello world!");

}

}

// 专栏的“代码块”是假的吗?怎么第一次显示不出来(

java 程序编程

编译成 class 文件

javac HelloWorld.java

运行

java HelloWorld

基本数据类型

内置数据类型

- byte

1. 8 位有符号整数

2. 最小值 -128 (-2^7)

3. 最大值 127 (2^7-1)

4. 默认值 0

- short

1. 16 位有符号整数

2. 最小值 -32768 (-2^15)

3. 最大值 32767 (2^15-1)

4. 默认值 0

- int

1. 32 位有符号整数

2. 最小值 -2147483648 (-2^16)

3. 最大值 2147483647 (2^16-1)

4. 默认值 0

- long

1. 64 位有符号整数

2. 最小值 -9223372036854775808 (-2^32)

3. 最大值 9223372036854775807 (2^32-1)

4. 默认值 0

- float

1. 32 位单精度浮点数

2. 默认值 0.0f

- double

1. 32 位双精度浮点数

2. 默认值 0.0f

- boolean

1. 布尔值

2. 取值 `true` 或 `false`

3. 默认值 `false`

- char

1. 16 位的 Unicode 字符

2. 最小值 0

3. 最大值 65535

引用数据类型

- 对象、数组都属于引用类型

- 默认值是 null

- 一个引用变量可以引用任何与之兼容的类型

java 常量

java 使用 final 关键字修饰常量

- final double PI = 3.14159265359;

整型字面量

- 前缀 0 表示 8 进制

- 前缀 0x 表示 16 进制

自动类型转换

从低级向高级

- double

- float

- long

- int

- byte, short, char

强制类型转换

数据类型必须是兼容的

(type)value

java 变量类型

局部变量

类的方法中的变量

- 执行完之后会自动销毁

- 在栈上分配空间

- 没有默认值,必须先初始化

实例变量

独立于方法之外的变量,不用 `static` 修饰

- 在对象被销毁时销毁

- 只能通过方法或者语句块使外部能够获得这些信息

类变量(静态变量)

独立于方法之外的变量,用 `static` 修饰

- 多个对象共用一份拷贝

- 存在静态存储区

- 可以通过 `ClassName.VariableName` 的方式访问

- 常常被声明为常量

- 当被声明为 `public satic final` 时,变量名建议大写

java 修饰符

访问控制修饰符1d02d8029c5b941b6062048b8d66ba04.pngb站专栏怎么连表格功能也没有的

注*:子类与父类不在同一个包中,子类实例可以访问从父类继承来的 `protected` 方法,但不能访问父类实例的 `protected` 方法。

非访问控制符

static

静态变量

同一个类只有一份拷贝

静态方法

不能使用非静态的变量

final

final 变量

即赋值后不能再次赋值,即常量。

常与 `static` 一同表示一个类常量。

final 方法

父类中的 `final` 方法可以被继承,不能被重写。

final 类

不能被继承。

abstract

抽象类

不能被实例化。

表示将来子类对该类进行扩充。

不能被 `final` 修饰。

抽象方法

一种没有任何实现的方法,具体实现由子类提供。

不能被声明成 final 和 static。

任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

如果一个类包含抽象方法,那么该类必须声明为抽象类。

抽象类可以不包含抽象方法。

synchronized

用 `synchronized` 声明的方法同一时间只能被一个线程访问。

transient

用 `transient` 修饰的变量在序列化时会被忽略。

volatile

Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。

用 `volatile` 修饰的变量在每次被线程访问时,都从主内存中重读该变量的值。

这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。

建议在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。

在效率上比较低,因此一定在必要时才使用此关键字。

a523adce009417286c0349f2fb00a754.png

//大量参考菜鸟教程 Java 部分

95a5b1403c0ca8fb91076f7ed9039369.png图片来源于网络,侵删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值