java核心编程技术读后感_读书笔记——《Java核心编程》

本文深入讲解了Java中的字符串比较、流程控制语句(if/else、switch、while、do-while、for)、标签的使用、数组操作API及方法参数传递方式等内容。特别强调了字符串比较时应使用equals方法而非==运算符的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、检测字符串是否相等,可以使用equals方法检测,相等返回true,否则返回false。一定不能用==运算符检测,原因是这个运算符只能够确定两个字符串是否放置在同一个位置上。当然如果字符串放置在同一个位置上,他们必然相等,但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。实际上虚拟机中只有字符串常量是共享的(即放置在同一个位置),而用+或substring等操作产生的结果并不是共享的。所以很可能会产生那种随机产生的间歇性的bug。

2、if/else语句的流程图:

05114642_kTap.jpg

05114642_7RPo.jpg

上图是if - elseif - else语句流程图,switch是另外一种变种的if - elseif - else 语句

3、while的流程图

05114642_Hey3.jpg

4、do-while的流程图:

05114642_PfBE.jpg

5、for语句的流程图

05114642_ae4j.jpg

注:图片为网络拷贝的,如有侵权请告知

6、java中的标签

Java 中的标签是为循环设计的,是为了在多重循环中方便的使用break 和coutinue 。以下实例当在循环中使用 break 或 continue 循环时跳到指定的标签处:

public static void main(String[] args) {

// 标签名:

// 标签是配合continue和break来使用,break out; 在标签名为out的后面的所有循环终止

// continue out; 跳过后面的所有内容,从标签名为out处开始下一次迭代循环

// 标签后面必须是循环

// 一般适用于嵌套循环

boolean b = true;

int i = 0;

System.out.println("外层循环开始执行");

out: while (b) {

i++;

System.out.println("内层循环开始执行");

int j = 0;

in: while (b) {

j++;

if (j == 5) {

System.out.println("内层continue");

continue;

}

if (j == 10) {

System.out.println("内层break");

break in;

}

System.out.println("j=" + j);

}

if (i == 3) {

System.out.println("外层continue");

continue;

}

if (i == 5) {

System.out.println("外层break");

break;

}

System.out.println("i=" + i);

}

System.out.println("程序结束");

}

7、数组的一些api

System.arrayCopy(Object from,int fromIndex,Object to,int toIndex,int count)

将第一个数组中的元素拷贝到第二个数组中,就是把from中的元素从from开始拷贝count个元素到to数组的toIndex后

from 任意类型的数组

fromIndex 原始数组中待拷贝元素的起始下标

to 与from同类型的数组

toIndex 目标数组中放置拷贝元素的起始下标

count 拷贝元素数量

Arrays中操作数组的方法

copyOf(type[] a ,int start,int end)

和上面的方法作用类似

toString(type[] a)

返回a中数据元素的字符串,这些数据元素被放在括号内,并用逗号分隔,这个常用于一维数组,如果多维数组的会要用deepToString

sort(type[] a)

对a数组进行排序,采用的是优化的快速排序法

binarySearch(type[] a,type v)

采用二分搜索算法查找值v,如果查找成功返回响应的下标值,失败返回负数

8、方法参数,值调用表示方法接收的是调用者提供的值,而引用调用表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的值,而不能修改传递值调用所对应的变量值。值得注意的是,对象引用采用的也是值传递,如果想通过一个方法去交换两个对象的引用是不可能成功的,如:

swap(Employee a, Employee b){

Employee temp = a;

a = b;

b = temp;

}

这个是不能成功的,传递进来的a和b只是一个对象引用拷贝,这个只能交换两个对象的引用拷贝,在方法介绍后,a和b被抛弃。

总结:一个方法不能修改一个基本数据类型的参数

一个方法能修改一个对象参数的状态

一个方法不能实现让对象参数引用另一个新的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值