5 Java基础第二天

11.Java语言基础-最常用的引用类型-String

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。

String是一个类,表示字符串(后面详讲),所有字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串

字符串都得使用"" 括起来的,连接字符使用 “ + ” 符号

 

 


字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型.

转义字符号练习:输出: "你好世界"

 

 

System.out.println(8 + 7 + "Hello");//结果是15Hello
System.out.println("Hello" + 7 + 8);//结果是Hello78
System.out.println(7 + "Hello" + 8);//结果是7Hello8
String str = 17 + "ABC";//组成一个字符串
System.out.println(str);//17ABC
String str 2 =(String)17 + "ABC";//编译错误:不可转换的类型

12.Java语言基础-数据过大和溢出

当要表示的数据超出数据类型的临界范围时,称为溢出。溢出情况发生时程序并没有做数据范围检查处理,此时会出现数据紊乱情况。

int最大值

int intMax = 2147483647;

 

分析数据发生紊乱的原因.

5 Java基础第二天_第1张图片 5 Java基础第二天_第2张图片

13.Java语言基础-基本类型的自动转换

在8大基本类型中,boolean不属于数值类型,不参与转换.


转换规则其实就是各自数据类型的空间大小.看图

 

把不同的数据类型看成是不同容量的容器.

byte是一个字节,最多只能装1斤水.

short是2个字节,最多只能装2斤水.

5 Java基础第二天_第3张图片

自动类型转换,也称为“隐式类型转换”:

当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样

再次强调:boolean 类型是不可以转换位其他数据类型

5 Java基础第二天_第4张图片

一般地,byte,short,char不参与转换操作.

我们直接把byte,short,char直接赋给int类型.

14.Java语言基础-基本类型的强制转换

强制类型转换,也称为“显示类型转换”:

当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。

这就好比把装两斤水容器里的水倒在可以装一斤水的容器里,是可能造成水溢出的。若要坚持把4斤苹果塞进一个装3斤的袋子里,我们要怎么办动用暴力

强制类型转换,可能造成溢出和精度损失。

 

问题:

为什么byte c = 5这是符合强转类型转换条件的,可为什么没转呢?

15.Java语言基础-表达式类型的自动提升

当一个算术表达式中包含多个基本数据类型(boolean除外)的值,整个算术表达式的数据类型将在数据运算时出现类型自动提升,其规则是:

所有的byte、short、char类型被自动提升到int类型

整个表达式的最终结果类型被提升到表达式中类型最高的类型


double d1 = 123 + 1.1F + 99L +3.14;
System.out.println('a' + 1);//98
byte b = 22;
b = b + 11;//编译出错,此对结果类型应该是int

判断以下表达式的结果类型:

short s = 10;

byte a = 2;

int i = 5;

float f = 10.0F;

double d = 35.0;

(s/a) -(f / s) - (d + i)

 5 Java基础第二天_第5张图片

String和任意数据使用+连接起来,结果都是string(字符串).

16.Java语言基础-算术运算符

5 Java基础第二天_第6张图片

Arithmetic oprators

用来处理四则运算的符号


加号:在操作数值、字符、字符串时其结果是不同的,当两个字符相加得到的是ASCII码表值

当两个字符串相加时表示将两个字符串连接在一起,从而组成新的字符串

除号:整数在使用除号时,得到的结果仍为整数(小数部分忽略),当整数除以0的时候,会引发算数异常。

          正无穷大(Infinity):当一个正浮点类型数除以0时,或者正整数除以0.0时;

          负无穷大(-Infinity):当一个负浮点类型数除以0时,或者正整数除以0.0时; 

          NaN(Not a number):当0.0除以0.0时:

取模(求余数):模数的符号忽略不计,结果的正负数取决于被模数.

注意:无穷大和NaN都属于double浮点类型,但是所有正无穷大数都是相等的,所有负无穷大也是相等的,NaN永远不相等,也不等于自己.

17.Java语言基础-++和--详解

++和--详解都只能操作变量,不能操作常量.

++:表示当前操作变量自己累加1.

--:表示当前操作变量自己减去1.


自增:++,递增运算符,使变量值增加1,有前置和后置之分,只能操作变量。

自减:--,递减运算符,使变量值减去1,有前置和后置之分,只能操作变量。

自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++:

代码 result ++和 ++result,都将使result变量的值加1。

唯一的区别是:

前置(++result):表示对result加1之后的结果进行运算

后置(result++):表示对result变量加1之前的值(原始值)进行运算

如果仅仅执行简单的操作(只写result++或++result),那么选用任意一个都可以。

5 Java基础第二天_第7张图片

18.Java语言基础-自增的面试题分析

面试题分析:

public static void main(String[] args){
    int num1 = 1;
    num1 = num1 ++;
    System.out.println(num1);//1
    int num2 = 1;
    num2 = ++ num2;
    System.out.println(num2);//2
}

5 Java基础第二天_第8张图片


练习题:

public static void main(String[] args){
    int i =5;
    i++;
    System.out.println("i= " + i);//6
    ++i;
    System.out.println("i= " + i);//7
    System.out.println("---------");
    int a = ++i;
    System.out.println("a= " + a);//8
    System.out.println("i= " + i);//8
    int b = i++;
    System.out.println("b= " + b);//8 
    System.out.println("i= " + i);//9

5 Java基础第二天_第9张图片

19.Java语言基础-赋值运算符

5 Java基础第二天_第10张图片

assigning operator

专门为变量指定值或重新定值


注意Java支持同时多个变量赋值,好比支持同时声明多个变量一样,但因影响可读性,故也不推荐。

加等于:x += 5;相等于x = x + 5,但还包括隐式类型转换。

public class Hello{
    public static void main(String[] args{
        int a,b,c;//不推荐 
        a = b = c = 5;//不推荐
        short s = 5;
        //s = s + 3;//编译出错,需要强转 s = (short)(s + 3);
        s += 3;//编译OK,隐式类型转换
        }
} 

5 Java基础第二天_第11张图片

20.Java语言基础-比较运算符

5 Java基础第二天_第12张图片

comparision operator

用于比较两个变量或常量之间的关系,比较运算符的结果是boolean类型,其操作格式为:

boolean result = 表达式A 比较运算符 表达式B;


==:等于,若比较的两个操作数都是数值类型,即使她们的类型不同,只要值相同就返回true。

当然==也可以比较引用数据类型,留到后面讲

instanceof:在讲面向对象的时候,再细讲。

你可能感兴趣的:(#,阶段一,语言基础,java)