当前位置:网站首页 > Java基础 > 正文

java基础知识难点



最近在看Java核心技术这本书,这里对第三章个人认为的重难点做一个总结。方便以后回顾,个人能力有限,本人菜鸟,大神勿喷,请大家多多指教。

一、位运算符 指定 A = 66(0100 0010); B = 22 (0001 0110)(这里为了简化说明支取一个字节即8位来运算)

位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能。如果要开发高效率程序,位运算符是必不可少的。位运算符用来对二进制位进行操作,包括:按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、按位左移(<<)、按位右移(>>)。下面就给大家介绍位运算符的详细用法。

按位与(&)(双1为真)

java中比较难的地方 java难点在哪里_数组

(A & B) 结果为 2, 二进制为 0000 0010

按位或(|)(有1为真)

java中比较难的地方 java难点在哪里_java中比较难的地方_02

(A | B) 结果为 86, 二进制为 0101 0110

按位异或(^)(不同为真)

java中比较难的地方 java难点在哪里_java_03

(A ^ B) 结果为 84, 二进制为 0101 0100

按位取反(~)

java中比较难的地方 java难点在哪里_数组_04

按位左移(<<)

将操作数的所有位向左移动指定的位数。

java中比较难的地方 java难点在哪里_字符串_05

(A << 2)结果为 8, 二进制为 0000 0100

按位右移(<<)

java中比较难的地方 java难点在哪里_数组_06

A >> 2 结果为 15, 二进制为 0000 1111

二、枚举类型

有时候,变量的取值只在一个有限的集合内,例如服装的尺码只有S,M,L,X四个号码。针对这种情况,可以使用自定义枚举类型。

 

三、不可变字符

Java的String类是不可变类,并且被final修饰,无法继承。 字符串对象都是不可变对象,所以对字符串进行操作时,都是返回新的字符串对象,原有字符串不会改变。如同数字3永远是数字3。

四、equals与==

操作符==比较的是变量值是否相同,因为字符串是引用类型,所以操作符==只能检测两个字符串是否指向同一个引用(对象地址),但无法检测字符串对象的内容,完全有可能将内容相同的多个字符串拷贝放置在不同的位置上(对象地址)。操作符==只能用于判断基本类型以及引用类型是否为null。

要判断两个字符串变量是否相同,应该使用equals()方法来判断。两个对象指向同一引用,则说明内容相等。否则开始循环比较字符串内容。String的equals()方法实现细节

 
 

五、String的常用API

 

六、String、StringBuilder与StringBuffer的区别

String:

是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.(对内存与性能有极大的消耗)
String 是final类,即不能被继承.

StringBuffer:
StringBuilder :

在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

七、Java中的“goto”语句

首先在java中对标签的要求非常严格
java基础知识难点 标签必须在一个循环的前面,意思是这个循环的名字叫outer(假设标签名为outer),并且这一行后面不能有任何语句了;
而break和continue是和循环语句结合使用的,因此实际上语句标签的使用也是和循环紧密结合的。
事实上,可以将标签应用到任何语句中,如if语句或者快语句,注意:只能跳出语句块,而不能跳入语句块

因此 个人总结
带标号的break、continue局限于循环体中跳转
带标号的goto 可以在整个方法中(c语言函数)跳转
goto比带标号的break、continue用法灵活 正因为太灵活了
使程序的逻辑结构变的复杂,流程不够清晰,程序的可读性下降
所以java中把goto 保留了

八、Arrays类的常用方法

 

九、不规则数组的本质

java中比较难的地方 java难点在哪里_java_07

  • 上一篇: java程序设计基础
  • 下一篇: java基础切片
  • 版权声明


    相关文章:

  • java程序设计基础2025-04-09 23:50:00
  • java私塾基础2025-04-09 23:50:00
  • java 基础班视频2025-04-09 23:50:00
  • java面试基础2025-04-09 23:50:00
  • java教学基础2025-04-09 23:50:00
  • java基础切片2025-04-09 23:50:00
  • java基础语言编程2025-04-09 23:50:00
  • 掌握JAVA编程基础2025-04-09 23:50:00
  • JAVA开发基础命令2025-04-09 23:50:00
  • java基础讲2025-04-09 23:50:00