类型转化,运算符 & Scanner

这算是学习+复习第二天

类型转换

  • 不能对布尔值进行转换

  • 不能把对象类型转换为不相干的类型

  • 高容量类型转到低容量类型的时候,强制转换

  • 转换时候可能存在内存溢出,或者精度问题

eg:

System.out.println("==========");
System.out.println((int)23.7); //输出结果 23
System.out.println((int)-25.7f); //输出结果 -25
System.out.println("===========");
char c='a';
int d=c+1;
System.out.println(d);
System.out.println((char)d);
​
//Java 7 新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int total= money* years; //total=-1474836480,计算的时候溢出了。
long total2= money * years; //同样是-1474836480,在转换前默认的是int。
long total3=money * ((long)years);//20000000000,先转换一个数为long,计算时就会转为long计算。

 

运算符

扩展赋值运算符 :+=,-=,*=,/=

条件运算符: ?:

位运算符:&,|,^.~.>>,<<,>>>

逻辑运算符:&&,||,!

关系运算符:>,<,>=,<=,==,!=,instaceof

赋值运算法:=

算术运算符:+,-,*,/,%,++,--

示例:

```java
int b=a++;//先赋值再自增
int c=++a;//先自增,再赋值
//幂运算
Math.pow(3,2);//3*3

```

```java
        //与或非
        boolean a=true;
        boolean b=false;
        System.out.println("a && b:" +(a&&b)); //真真为真,真假为假
        System.out.println("a || b:"+(a||b)); //有一个真则为真
        System.out.println("!(a && b):"+!(a&&b)); //假作真,真作假
```

```java
 /*
        A= 0011 1100
        B= 0000 1101

        A&b = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~B =1111 0010

        2*8=16  2*2*2*2
        << 左移  操作相当于 *2
        >> 右移  操作相当于 /2

        0000 0000 0
        0000 0001 1
        0000 0010 2
        0000 0100 4
        0000 1000 8
        0001 0000 16
         */
        System.out.println(2<<3); //2左移3位
```

```java
 int a=10;
        int b=20;
        //字符串连接符 + ,有String则后面则是拼接
        System.out.println(""+a+b);
        //
        System.out.println(a+b+"");
```

```java
//x ? y :z
        //如果x==true,则结果为y,否则结果为z

        int score = 80;
        String type=score < 60 ?"不及格":"及格";
        System.out.println(type);
```

Scanner

创建scanner

Scanner scanner=new Scanner(System.in);
String str=scanner.next();
String str=scanner.nextLine();
scanner.close();

凡是属于IO流的类如果不关闭会一直占用资源,所以用完就关掉。

关闭Scanner

以Enter为结束符,也就是说返回的结果是输入回车之前的所有字符,可以获取空格。

nextLine() 输出内容

next()不能有带空格的字符串,比如Hello World的输出结果Hello,会忽略空格后的内容.

next()输出内容

 

posted @ 2020-07-15 11:03  不死学徒  阅读(19)  评论(0)    收藏  举报