栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【JAVA学习】004

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【JAVA学习】004

  • 【JAVA学习】004_变量&数据类型&数据类型转换&ASCII编码&运算符
  • 前言
  • 一、变量
  • 二、数据类型
  • 三、数据类型的转换
    • 隐式类型转换
    • 强制类型转换
  • ASCII编码表
  • 五、运算符
    • 算数运算符
    • 赋值运算符
    • 关系运算符
    • 逻辑运算
    • 位运算符


【JAVA学习】004_变量&数据类型&数据类型转换&ASCII编码&运算符 前言

记录一个小白的Java学习之旅……

一、变量

什么是变量?

在一定范围内,可以发生变化的量

变量的定义格式:

格式一:(直接定义)
数据类型  变量名  =  数据;
int       a      =  12;

格式二:(间接定义)
数据类型  变量名;
变量名  =  数据;
int	i;
i  =  12;
二、数据类型

Java中数据类型的分类:

2大类4小类8小种

基本数据类型:4类8种

整型:
	byte(1个字节)
	short(2个字节)
	int(4个字节)
	long(8个字节)
	一个整数,默认的数据类型是int
	
浮点型:
	float(4个字节)
	double(8个字节)
	
字符型:
	char(2个字节)
	
布尔型:
	boolean(1个字节)

输入:
package com;

public class demo01 {
    public static void main(String[] args) {
        // 定义一个byte类型的变量
        byte a = 12;
        System.out.println(a);

        // 定义一个short类型的变量
        short b;
        b = 13;
        System.out.println(b);

        // 定义一个int类型的变量
        int c = 1;
        System.out.println(c);

        // 定义一个long类型的变量
        long d = 2;
        System.out.println(d);

        // 定义一个float类型的变量
        float e = 3.14f;  // 需要加个大写或小写的F
        System.out.println(e);

        // 定义一个double类型的变量
        double f = 3.14;
        System.out.println(f);

        // 定义一个char类型的变量
        char g = 'a';
        System.out.println(g);

        //定义一个boolean类型的变量
        boolean h = true;
        System.out.println(h);
        boolean i = false;
        System.out.println(i);

        // 定义两个int类型的变量
        int j = 1;
        int k = 2;

        int l = 1, m = 2;

        int n,o;
        n = 1;
        o = 2;
    }
}

输出:
12
13
1
2
3.14
3.14
a
true
false

注:在使用变量的时候需要注意的问题

1. 当我们给float类型变量赋值的时候,要在数据的后面加上F或f
2. 当我们给long类型变量赋值的时候,建议在后面加上L或l
3. 当我们想要使用某个变量的时候,一定要先赋值,再使用,否则会报错
4. 当我们想要给某个变量赋值的时候,要考虑该变量的范围,否则会报错
5. 在同一对花括号内,不能定义同名变量

引用数据类型:(后面介绍)

三、数据类型的转换 隐式类型转换

什么是隐式类型转换?

就是指小的数据类型会自动提升为大的数据类型

    byte b = 1;
    short s = 2;
    int i = 3;
    long l = 4;
    float f = 3.14f;
    double d = 3.15;
    double dd = b + s + i + l + d;
    当多个数据类型参与运算的时候,小的数据类型会自动提升为大的数据类型

注:boolean类型不能和其他数据类型相互转换

    byte b1 = 1;
    byte b2 = 2;
    byte b3 = b1 + b2;
    System.out.println(b3); // 编译报错

    byte b1 = 1;
    byte b2 = b1 + 2;
    System.out.println(b2); // 编译报错

    // 结论:针对byte和short类型的时候,只有右边有一个是变量,就会编译报错
    
    byte b4 = 126 + 1;
    System.out.println(b4);  // 正确

    byte b5 = 127 + 1;
    System.out.println(b5);  // 报错
强制类型转换

什么是强制类型转换?

是指大的数据类型被强制转换成小的数据类型

强制类型转换的格式:

小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名;

eg:

int i = 110;
byte b = (byte)i

注:能不使用强制转换,尽量不要使用,因为转不好会出现问题

    int i = 130;
    byte b = (byte)i;
    System.out.println(b);  // -126

ASCII编码表
'a' --> 97,b、c、d、……累加
'A' --> 65,B、C、D、……累加
'0' --> 32,1、2、3、……累加

char c = 'a';
int i = 1;
int a = i + c;
System.out.println(a); // 98   ---->  'a' >>>97

System.out.println(' ' + 0); // 32 ----> ' ' >>>32
System.out.println('0' + 0); // 48 ---> '0' >>>48

五、运算符 算数运算符
+
	在Java中的含义:
		1. 加减乘除的加
		2. 正负的正
		3. 连接符
			任意数据类型的数据与字符串相连接的时候,那个+号就是连接符
		       System.out.println(1 + "abc"); // "1abc"
		        System.out.println("abc" + 1); // "abc1"
		        System.out.println(true + "abc"); // "trueabc"
		        System.out.println('a' + "abc"); // "aabc"
		
		        int i = 1;
		        int j = 2;
		        System.out.println(i + "abc" + j); // "1abc" + j ---> "1abc2"
		        
				// 已知有两个变量a和b,值分别为1和2,输出 a + b = 3,1 + 2 = 3
		        int a = 1;
		        int b = 2;
		        System.out.println("a + b = " + (a + b)); // a + b = 3
		        System.out.println(a + " + " + b + " = " + (a + b)); // 1 + 2 = 3
	        
-

*

/
	整数除以整数,结果仍是整数
       int i1 = 5;
        int j1 = 2;
        int a1 = i1 / j1;
        System.out.println(a1); // 2

        int i2 = 5;
        int j2 = 2;
        double a2 = i2 / j2;
        System.out.println(a2); // 2.0

        int i3 = 5;
        double j3 = 2;
        double a3 = i3 / j3;
        System.out.println(a3); // 2.5
        
%
	取余
        int i = 3;
        int j = 2;
        int k = 1;
        System.out.println(i % j); // 1
        System.out.println(j % i); // 2
        System.out.println(i % k); // 0
        
++
	单独使用:
		int i1 = 1;
        int i2= 1;
        int j1 = 2;
        int j2 = 2;
        i1++;
        ++i2;
        j1++;
        ++j2;
        System.out.println(i1); // 2
        System.out.println(i2); // 2
        System.out.println(j1); // 3
        System.out.println(j2); // 3
        不管++是在前还是在后,结果都是加1
        
	参与运算:
		++在前:先自身加1,然后再参与运算
			int i = 1;
	        int j = ++i;
	        System.out.println(i); // 2
	        System.out.println(j); // 2
		++在后,先参与运算,然后再自身加1
			int i = 1;
	        int j = i++;
	        System.out.println(j); // 1
	        System.out.println(i); // 2
	        
	注:
		byte b = 1;
        b = b + 1;
        System.out.println(b); // 报错
        
        byte b = 1;
        b++; // b = (byte)(b + 1); ++自身带有强制转换
        System.out.println(b); // 2
        
--
	单独使用:
		int i1 = 1;
        int i2= 1;
        int j1 = 2;
        int j2 = 2;
        i1--;
        --i2;
        j1--;
        --j2;
        System.out.println(i1); // 0
        System.out.println(i2); // 0
        System.out.println(j1); // 1
        System.out.println(j2); // 1
        不管--是在前还是在后,结果都是减1
        
	参与运算:
		--在前:先自身减1,然后再参与运算
			int i = 1;
	        int j = --i;
	        System.out.println(i); // 0
	        System.out.println(j); // 0
		--在后,先参与运算,然后再自身减1
			int i = 1;
	        int j = i--;
	        System.out.println(j); // 1
	        System.out.println(i); // 0
	        
	int i = 10;
    int j = i++ + ++i + i-- + --i;
    // int a = i++; // a=10, i=11
    // int b = ++i; // i=12, b=12
    // int c = i--; // c=12, i=11
    // int d = --i; // i=10, d=10
    // int j = a + b + c + d; // j = 10 + 12 + 12 + 10 = 44
    System.out.println(j); // 44
赋值运算符
=
	
+=
	int i = 1;
    i += 2;
    System.out.println(i); // 3
    
-=
	int i = 1;
    i -= 2;
    System.out.println(i); // -1

*=
	int i = 2;
    i *= 3;
    System.out.println(i); // 6

/=
	int i = 8;
    i /= 2;
    System.out.println(i); // 4
    
%=
	int i = 8;
    i %= 3;
    System.out.println(i); // 2

注:++,–,+=,-=,*=,/=,%= 都自带了强制类型转换

关系运算符

关系运算符输出的结果一定是boolean类型,也就是说要么是true,要么是false

>
<
>=
<=
!=
==
逻辑运算

左右两边的数据的数据类型都是boolean类型,结果也是boolean类型

&(单与):两边只要有一个是false,结果就为false
	System.out.println(true & true); // true
    System.out.println(true & false); // false
    System.out.println(false & false); // false
    System.out.println(false & true); // false
    
|(单或):两边只要有一个是true,结果就为true
	System.out.println(true | true); // true
    System.out.println(true | false); // true
    System.out.println(false | false); // false
    System.out.println(false | true); // true
    
^(异或):两边相同为false,两边不同为true
	System.out.println(true ^ true); // false
    System.out.println(true ^ false); // true
    System.out.println(false ^ false); // false
    System.out.println(false ^ true); // true
    
!(非):
	System.out.println(!true); // false
    System.out.println(!false); // true
    System.out.println(!!true); // true
    System.out.println(!!!true); // false
    
&&(双与):同&(单与):两边只要有一个是false,结果就为false
	System.out.println(true && true); // true
    System.out.println(true && false); // false
    System.out.println(false && false); // false
    System.out.println(false && true); // false
    
||(双或):同|(单或):两边只要有一个是true,结果就为true
	System.out.println(true || true); // true
    System.out.println(true || false); // true
    System.out.println(false || false); // false
    System.out.println(false || true); // true

&和&&的区别,|和||的区别

&&:如果左边为false,右边就不再执行了,结果就为false
&:如果左边为false,右边依然会执行,结果就为false

||:如果左边为true,右边就不再执行了,结果就为true
|:如果左边为true,右边依然会执行,结果就为false

推荐使用&&和||,提高执行效率
位运算符

左右两边的数据都是数字,结果也为数字

&(与位运算):
	System.out.println(3 & 2); // 2
	
|(或位运算):
	System.out.println(3 | 2); // 3
	
^(异或位运算):
	System.out.println(3 ^ 2); // 1
	
		// 实现i和j的调换
        int i = 1;
        int j = 2;
        System.out.println(i + "..." + j); // 1...2

        // 方法一:
        int temp = i;
        i = j;
        j = temp;
        System.out.println(i + "..." + j); // 2...1

        // 方法二:
        i = i ^ j;
        j = i ^ j;
        i = i ^ j;
        System.out.println(i + "..." + j); // 2...1
	
~(按位取反):

>>(右移位运算):
	System.out.println(3 >> 2); // 0
	
<<(左移位运算):
	System.out.println(3 << 2); // 12
	
>>>(无符号右移):
	System.out.println(3 >>> 2); // 0



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号