JAVA学习笔记二---数据类型和运算符


2.1 JAVA的数据类型

八大数据类型

整数类型:字节型byte(1个字节)、短整型short(2个字节)、整型int(4个字节)、长整型long(8个字节)

实数类型 :单精度浮点类型float(4个字节)、双精度浮点类型double(8个字节)

布尔类型:boolean(1个字节)

字符类型:char(2个字节)

复合数据类型

类class

接口interface

数组

注意:

1、byte的取值范围为:-128-+127

2、-42的转化为二进制:

42的二进制码为:00101010

-42就是先取反:11010101再加一11010110

(-42)10=(11010110)2

也就是负数的二进制就是这个数的绝对值的补码(反码加一)。

3、整数类型默认为int,而浮点数类型默认为double。

题目:long l=10;(可以)

long l=99999999999999;(不可以,99999999999999超过了int的最大值)
long l=99999999999999L;(可以)
float f=10.2;(不可以,浮点数默认为double)
float f=10.2f;
boolean类型只能赋值为true和false;
char c=97;(可以) char c='a';(可以)

4、各个类型的默认值

byte short int long 为0
float double 为0.0
boolean为false
char为''  (ASCII码为32)

强制类型转换 与 自动类型转换

double b=(double)10;(10本来应该为int,在这里强制转换为double)
byte b1=10;
byte b2=20;
byte b3=b1+b2;(错了,byte相加的结果已经转化为int类型了,因为相加很有可能超过)
byte b3=(byte)b1+b2;

2.2 JAVA的运算符

算术运算符

+ - * / %

逻辑运算符

>                  <                         >=                     =<                      !=                        ==
&&               &                          ||                        |

(&&是短路的,A&&B只要一个为false,就可以下结论为false)

(&是非短路的,A&B得有两个都是false,才可以下结论为false)

位运算符

<<              >>               >>>             &             |                    ^                      ~
1>>1往右移一位              0000 0001           0000 0000
10>>2往右移两位            0000 1010           0000 0101
&与         |或         ^异或          ~取反
=             +=              -=                /=             *=         %=

三元运算符 

i>=10?1:0

2.3 流程控制

if...else if...else的使用

switch case的使用

编写一个程序,从控制台获取一个数字,判断他是0还是1还是2。

if...else if...else的使用如下

import java.util.Scanner;

/**
 * 编写一个程序,从控制台获取一个数字,判断他是0还是1还是2。
 * @see www.baidu.com
 * @since Version 2.0 2020.02.12
 * @author iszhangyongxin
 *
 */
public class HelloWorld {
	/**
	 * 程序的main函数
	 * @return void
	 * @param args
	 */
public static void main(String args[]) {

	System.out.println("请输入一个数字:");
	Scanner scan=new Scanner(System.in);
	int i=scan.nextInt();
	
	if(i==0){
	
		System.out.println("输入的是0");
	}
	else if(i==1){
		System.out.println("输入的是1");
	}
	else if(i==2){
		System.out.println("输入的是2");
	}
	else{
		System.out.println("输入非法");
	}
	

}
//类的结尾
}

switch case的使用如下:

import java.util.Scanner;

/**
 * 编写一个程序,从控制台获取一个数字,判断他是0还是1还是2。
 * @see www.baidu.com
 * @since Version 2.0 2020.02.12
 * @author iszhangyongxin
 *
 */
public class HelloWorld {
	/**
	 * 程序的main函数
	 * @return void
	 * @param args
	 */
public static void main(String args[]) {

	System.out.println("请输入一个数字:");
	Scanner scan=new Scanner(System.in);
	int i=scan.nextInt();
	
	
	switch (i){
	case 0:
		System.out.println("输入的是0");
		break;
	case 1:
		System.out.println("输入的是1");
		break;
	case 2:
		System.out.println("输入的是2");
		break;
	default:
		System.out.println("输入非法");
		break;
	}
	

//类的结尾
}
}