计算机识别不了我们编写的代码语言,计算机中的数据全部采用二进制表示,即0和1表示的数字,每一个0或者1就是一个位,一个位叫做一个bit(比特)。(实际上计算机只能识别高低电平,而不是0和1。)
字节是计算机中最小的存储单位,8个bit表示一个字节,计算机中的任何数据都是以字节进行存储。
●8bit=1 B
●1024B=1 KB
●1024KB=1MB
●1024 MB=1 GB
●1024GB= 1 TB
... ...
基本数据类型(四类<整数型、浮点型、字符型、布尔型>八种<byte、short、int、long、float、double、boolean、char>)--值传递:
注意:①java中的默认类型:整数型默认int,浮点类型默认double。
②单精度浮点数float精确到小数点后7位,双精度浮点数double精确到小数点后15位。
引用数据类型(String、类、接口、数组... ...)--地址传递
String:本质是char[]数组(private final char value[]),是不可变字符串。
字符串对象值为空 ①表示引用为空 String str = null; //还没有初始化,没有分配内存空间。
②表示空字符串 String str = ""; //已经创建对象,分配了内存空间,内容为空。
常用方法: ①判断、比较的方法
public boolean equals (Object anobject):将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase(String anotherString)∶将此字符串与指定对象进行比较,忽略大小写。
②获取功能的方法
public int length()∶返回此字符串的长度。
public String concat (String str)∶将指定的字符串连接到该字符串的末尾。
public char charAt (int index):返回指定索引处的char值。
public int index0f (String str):返回指定子字符串第一次出现在该字符串内的索引,没有返回-1。
public String substring (int beginIndex):返回一个子字符串,从beginIndex开始截取到字符串结尾。
public string substring (int beginIndex,int endIndex):返回一个子字符串,从beginIndex到endlndex截取字符串。含beginlndex,不含endlndex。
③转换功能的方法
public char[] toCharArray ()∶将此字符串转换为新的字符数组。
public byte[] getBytes ():使用平台的默认字符集将该String编码转换为新的字节数组。
public String replace(CharSequence target,CharSequence replacement):将与target匹配的字符串使用replacement字符串替换。
④分割功能的方法
public string[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
数据类型转换:
①自动转换(java虚拟机自动执行):将取值范围小的类型自动提升为取值范围大的类型。(如byte/short/char运算时直接提升为int)
byte、short、char --> int --> long --> float --> double
②强制转换(手动执行):将取值范围大的类型强制转换为取值范围小的类型。
转换格式:数据类型变量名 = (数据类型) 被转数据值;
注意:● 浮点转成整数,直接取消小数点,可能造成数据损失精度。
● int强制转成short砍掉2个字节,可能造成数据丢失(数据溢出)。
运算符:
算数运算符:①整数的除数不能为0,负责报java.lang.ArithmeticException算术运算异常;
②浮点数的除数可以为0,因为被除数为浮点型,此时虚拟机会将除数作自动向上转型,而使得除数趋于无穷小,使得结果趋于无穷大Infinity;
③取余运算中的符号由被除数的符号决定。如-10%3 = -1;10%-3 = 1。
赋值运算符(数据类型向下转换时,虚拟机会强制转换。如short s =1;s += 1;结果是没有问题的,因为 += 是一个运算符,只执行一次运算,并带有强制转换的特点。):
比较运算符:
逻辑运算符:
三元运算符:
面试题:下面的程序有问题吗: