0
点赞
收藏
分享

微信扫一扫

Java基础学习-2

大师的学徒 2022-02-18 阅读 103
java学习

 1. Java中的两大数据类型
         1.1、基本数据类型[8种]
                 1.1.1、byte-> 1个字节 -128~+127  最高位为符号位1为负,0为正 
                1.1.2、short ->2个字节 -32768~+32767
                1.1.3、int->4个字节 ;整型数据默认类型是int

                1.1.4、long ->8个字节

//long l = 7777777777777777;//错误:过大的整数
long l = 77777777777l;//修改:l和L都可

                1.1.5、float ->4个字节

float f = 5.65f;//需要加f或F

                1.1.6、double->8个字节;

                            在java中所有浮点型数值默认为double类型;相同字节数的浮点类型数据比整型的数据类型保存的数值要大?

                        科学计算法的表示:

                        5100.00 ---> 5.1*10^3 ---->5.1e3

double demo = 5.1e4;//科学计数法

                1.1.7、布尔:->boolean true|false

//布尔--true|false
	boolean bitem = (2>3);
	System.out.println("bitem"+bitem);

                1.1.8、char  ->16个字节

                        可以存放中文,是以ASCII的形式编码

                        字符类型数据在程序中是以什么形式保存?(字母、标点符号、数字)

                        --char可以存放中文 中文使用了UTF-8编码进行存放

                        --使用UTF-8形式的编码 ‘\uxxxx’

                        比如:中---->'\u4e2d'        

//char--单字符,使用(单引号)‘’ ASCII->unicode(万国码) 
	char citem = 'c';
	System.out.println("citem"+citem);

	//可以进行加减运算
	int iItem = citem;
	System.out.println("iItem = "+item);
 
 	//万国码 unicode
	char citem1 = '\u4e2d';
 	System.out.println("citem1 = "+citem1);
//基本数据类型
public class date{
	//程序入口 main方法 在Java中声明一个变量,必须指定类型
	//1、整型数据默认类型是int【不能直接大的赋值给小的】
	public static void main(String[] args){
	
	//输出语句 Java强类型
	byte b = 18;//-128~127
	short d = 189;//-32768~32767
	int g = 555;
	//long l = 7777777777777777;//错误过大的整数
	long l = 77777777777l;//l和L都可
	System.out.println("b="+b);//输出b=18
	
	//错误:不兼容的类型,从int转byte可能会有损失
	//不确定性:不确定两个变量相加后的结果,所以编译出错
	byte item1 = 1;
	byte item2 = 2;
	//byte item3 = item1 + item2;
	byte item3 = (byte)(item1 + item2);//强制转型
	System.out.println(item3);//输出3

	//浮点数:小数类型--单精度--双精度
	//2、浮点数默认double类型
	float f = 5.65f;//需要加f或F
	double d1 = 4450.66;
	double demo = 5.1e4;//科学计数法
	System.out.println("f="+f);//输出f=5.65
	System.out.println("d1="+d1);//输出d=4450.66
	System.out.println("demo="+demo);//输出demo=51000.0
	
 	//布尔--true|false
	boolean bitem = (2>3);
	System.out.println("bitem"+bitem);//输出bitemfalse

	//char--单字符,使用(单引号)‘’ ASCII->unicode(万国码) 
	char citem = 'c';
	System.out.println("citem"+citem);//输出citemc

	//可以进行加减运算
	int iItem = citem;
	System.out.println("iItem = "+item);//输出99
 
 	//万国码 unicode
	char citem1 = '\u4e2d';
	System.out.println("citem1 = "+citem1);//输出中 
	}
}

2.自动类型提升顺序:小容量的数据类型可以赋值给大容量的数据类型

        2.1、基本类型提升的顺序1 :

                byte-->short-->int-->long-->float-->double

        2.2、基本类型提升的顺序2 :

                char-->int-->long-->float-->double

        2.3、表达式中的自动类型提升:

                表达式中的类型自动提升 首先小类型会提升为大类型,然后再进行运算

                注意:大容量的数据类型赋值给小容量的数据类型会有类型兼容问题,不能直接赋值,除非通过强制类型转换

                强制转换语法格式:

                        类型1 变量a = (类型1) 变量b

                        类型1 变量a = (类型1) (表达式)

        浮点类型的数据19.895989赋值给int类型,得到的结果:->19【原因将浮点型数据强制转换为int类型 截取掉后面的小数,不存在四舍五入的说法,所以得到是19】

 3、运算符的使用

        3.1、算术运算符 + - * / %

                +的作用:实现加法运算,实现字符串的拼接

 

                扩展后的赋值运算符中包含强制类型转换操作 如

                        item += 3;不完全等于item = item +3;

                        而是等于item = (item的类型)(item +3);

                3.2、位运算符                        

        左移n位就乘2^n 双目运算符 案例 : 8向左移动一位,低位补0

        有符号右移如3>>1 得到1 高位补符号位

        无符号右移 高位补0

public class Date {
    public static void main(String[] args){
//        float a = 3;
//        int b = 4;
//        int score = 0;
//        score += a;
//        System.out.println(score);

        //&按位与;同时为1才返回1
        int a = 0b00001100;
        int a1 = -4;
        int b = 0b00000111;
        System.out.println("a&b"+'\t'+(a&b));//->0b 0000 0100

        //|按位或;有一个为1即返回1
        System.out.println("a|b"+'\t'+(a|b));//->0b 0000 1111

        //~按位非;单目运算符,将操作数的每个位全部取反,包括符号位
        System.out.println("~a"+'\t'+(~a));//->0b 1111 0011

        //^异或,相同时返回0,不同时返回1
        System.out.println("a^b"+'\t'+(a^b));//->0b 0000 1011

        //左移 低位补0
        System.out.println("a<<2"+'\t'+(a<<2));//a:0b 0000 1100->ob 0011 0000

        //有符号右移 高位补符号位正数补零,负数补1
        System.out.println("a>>2"+'\t'+(a>>2));//正数a:0b 0000 1100->ob 0000 0011
        //负数a1=-4;                                  右移两位->      负数-1
        // 源码0b 0000 0000 0000 0000 0000 0000 0000 0100    源码0b 0000 0000 0000 0000 0000 0000 0000 0001
        // 反码0b 1111 1111 1111 1111 1111 1111 1111 1011    反码0b 1111 1111 1111 1111 1111 1111 1111 1110
        // 补码0b 1111 1111 1111 1111 1111 1111 1111 1100    补码0b 1111 1111 1111 1111 1111 1111 1111 1111
        System.out.println("a1>>2"+'\t'+(a1>>2));
        //0000 1000->0000 0010
        //无符号右移 高位补0
        System.out.println("a>>>2"+'\t'+(a>>>2));//a:0b00001100->ob 0000 0011


    }
}

        3.3、比较运算符(短路和非短路的概念)

                > < >= <= == !=

                3.3.1、逻辑运算符        

                 短路与&& 如果前面的表达式为假,则后面不需要在判断,直接短路

                短路或|| 前面为真,则直接短路,不执行后面的逻辑判断

                非短路与和或 要执行全部的逻辑判断

//逻辑运算符
//非短路 与和或 执行全部的逻辑运算
if((2>3)&(3>2)){
    System.out.println("非短路与");
}
if((2>3)|(3>2)){
    System.out.println("非短路或");
}

//短路与和或 执行部分的逻辑运算
if((2>3)&&(3>2)){
    System.out.println("短路与");
}
if((2>3)||(3>2)){
    System.out.println("短路或");
}

                3.3.2、三目运算符(三个操作元素,相当于判断语句)

                        书写格式:(逻辑表达式)?数值1:数值2

                        如果表达式为真->则赋值数值1,为假则赋值数值2

//大于85 A 大于60 B 其余 c
int score = 80;
String level = score>85?"A":(score>60?"B":"C");
System.out.println(level);
//三目运算符的嵌套:
//>=90优秀 >=80良好 >=60及格 其余不及格
String le = score >=90?"优秀":(score>=80?"良好":(score>=60?"及格":"不及格"));
System.out.println(le);

        3.4、自增自减操作

                ++在变量的后面,所以先进行算术运算再进行自增操作

                ++在变量的前面,所以先进行进行自增操作再算术运算

                如果自增或自减符号和其他运算符一起操作时,会有顺序的先后:

int i = 3
int item = 3+i++;//item = 3+3;-->i=4;
int item = ++i+3;//i=4-->;item = 4+3; 
举报

相关推荐

Java基础学习(2)

java基础学习(2)

【Java基础】2、Java基础语法

java基础2

HTML基础学习(2)

【SQL基础学习】----基础篇(2)

java基础学习

Java基础学习

0 条评论