栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Java核心技术》阅读笔记之第3章

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Java核心技术》阅读笔记之第3章

第3章 Java的基本程序结构

3.1 一个简单的Java应用程序

public class FirstSample {
    public static void main(String []args) {
        System.out.println("Hello world!");
    }
}

3.2 注释

// 单行注释


3.3 数据类型

(1)整型

类型存储需求取值范围
int4字节-2 147 483 648~2 147 483 647
short2字节-32 768~32 767
long8字节-9 223 372 036 854 775 808~9 223 372 036 854 775 807
byte1字节-128~127

(2)浮点型

类型存储需求取值范围表示
float4字节大约±3.402 823 47E+38F(有效数位6~7位)3.14F或3.14f
double8字节大约±1.797 693 134 862 315 70E+308(有效数位15位)3.14或3.14D或3.14d

注:

溢出和出错可用下列三个特殊浮点数值表示:

正无穷大(Double.POSITIVE_INFINITY)

负无穷大(Double.NEGATIVE_INFINITY)

NaN(不是一个数字 Double.NaN)

判断x是否为NaN的方法:

// 错误
if(x == Double.NaN)   // is never true
// 正确
if(Double.isNaN(x))

浮点数值不适用于无法接受舍入误差的金融计算中。

(3)char类型

(4)boolean类型

boolean只有两个值:true和false,用来判定逻辑条件。

整型值和布尔值之间不能进行相互转换。

int a = 10;
if(a)  // 错误
if(10) // 错误

Boolean flag = true;
if(a == 10) // 正确
if(flag)    // 正确

3.4 变量

(1)常量定义

final int ABC_D_F = 2;  // final表示这个变量只能赋值一次
static final int X_Y_Z = 10;   // 类常量可以用static final定义

3.5运算符

(1)/ 运算:

/ 运算结果说明
15 / 27(int)当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。
15.0 / 27.5(double)当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法。

(2)数学函数与常量

// 常规用法
import java.lang.Math.*;
System.out.println(Math.PI);

// 静态导入,可省略Math
import static java.lang.Math.*;
System.out.println(PI);

(3)数值类型之间的转换

上图解释

实心箭头:表示无信息丢失的转换。

虚箭头:表示可能有精度损失的转换。

进行二元计算时,(如 n + f),先要将两个操作数转换为同一种类型,然后再进行计算。(double > float > long > int)

如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。否则,如果其中一个操作数是float类型,另一个操作数将会转换为float类型。否则,如果其中一个操作数是long类型,另一个操作数将会转换为long类型。否则,两个操作数都将被转换为int类型。

(4)强制类型转换

// 浮点型转整型
double x = 9.993;
int y = (int)x; // y = 9
// 带舍入运算的浮点型转整型
double x = 9.993;
int y = (int)Math.round(x); // y = 10

(5)关系运算

a && b 和 a|| b (短路方式运算):如果a为false,b就不计算。

(6)位运算

a & b 和 a| b (非短路方式运算):a和b都计算。> > >:用0填充高位。> > :用符号位填充高位。< <

3.6 字符串

(1)子串

String str = "Hello World!";
String str1 = str.substring(0,5);  // Hello

(2)拼接

使用“+”拼接

String a = "Hello";
String b = "World";
String c = a + b; // "HelloWorld"
// 当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串
int index = 987;
String d = a + index; // "Hello987"

使用String.join()拼接

String str = String.join(" ", "a", "b", "c"); // "a b c",第一个参数为定界符

(3)不可变字符串

String为不可变字符串。

(4)检测字符串是否相等

== :检测两个字符串是否放在同一位置上。

equals():检测两个字符串内容是否相同。

equlsIgnoreCase():忽略大小写检测两个字符串内容是否相同。

String a = "Hello";
String b = "hello";
if(a.equals(b)) // false
if(a.equlsIgnoreCase(b)) // true

(5)空串和Null串

空串:即"",是一个Java对象,有自己的串长度(0)和内容(空)。Null串:即null,表示目前没有任何对象与该变量关联。

// 判断一个字符串是否为null
if(str == null)
// 判断一个字符串既不是null也不为空串
if(str != null && str.length() != 0)

3.7 输入输出

(1)读取输入

Scanner in = new Scanner(System.in);
// 只有一个输入
String str = in.next();
// 多个输入
while(in.hasNext()) {
    str = in.next();
}

(2)格式化输出

沿用C语言格式化输出方法

与C语言相比,将printf()用System.out.printf()替换即为该格式化输出方法。

Double num = 10000 / 3.0;
System.out.printf("%fn", num);
System.out.printf("%.2fn", num);   // 保留小数点后2位
System.out.printf("%8.2fn", num);  // 长度为8,右对齐,保留小数点后2位
System.out.printf("%-8.2fn", num); // 长度为8,左对齐,保留小数点后2位
System.out.printf("%,.2fn", num);  // 保留小数点后2位,用“,”分隔

// 运行结果
3333.333333
3333.33
 3333.33
3333.33 
3,333.33

静态String.format()格式化输出方法

(3)文件输入与输出

创建Scanner对象方法

try {
    // 相对路径
    Scanner in = new Scanner(Paths.get("src/Test1/hello.txt"), "UTF-8");
    // 绝对路径
    //Scanner in = new Scanner(Paths.get("D:\Desktop\WorkSpace\数据结构\src\Test1\hello.txt"), "UTF-8");
    while(in.hasNextLine()) {
        System.out.println(in.nextLine());
    }
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

序列化方法(将在后面章节详解)。

3.8 控制语句

(1)条件与循环

if(condition){} 和 while(condition){} 的condition 只能是 表达式 或 Boolean 对象。

(2)中断控制流程

continue:当前循环体的剩余部分,立刻跳到循环首部

break:退出当前层循环。

注:break 也可实现退出指定循环

// 只输出一个 1
first :
    for (int i = 0; i < 12; i++) {
        for (int j = 0; j <12; j++) {
            System.out.println(1);
            break first;
        }
    }

3.9 大数值(BigInteger 和 BigDecimal)

(1)BigInteger(整数)

// 创建BigInteger对象
BigInteger a = BigInteger.valueOf(2);

(2)BigDecimal(浮点数)

// 创建BigDecimal对象
BigDecimal a = BigDecimal.valueOf(2);

均不支持"+"、"-"、"*"、"/"等运算符,“加减乘除”等运算算法由其封装的方法提供。

3.10 数组

(1)二维数组foreach遍历

int[][] arr = new int[10][10];
for(int[] row : arr) {
	for(int value : row) {
	}
}

(2)创建不规则数组

int[][] arr = new int[10][];
for(int i=0; i 

(3)Arrays方法类

``

均不支持"+"、"-"、"*"、"/"等运算符,“加减乘除”等运算算法由其封装的方法提供。

3.10 数组

(1)二维数组foreach遍历

int[][] arr = new int[10][10];
for(int[] row : arr) {
	for(int value : row) {
	}
}

(2)创建不规则数组

int[][] arr = new int[10][];
for(int i=0; i 

(3)Arrays方法类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号