Java语言基础

Java语言基础

一、变量

1.1什么是变量

  • 变量:表示数据在内存当中的内存地址,变量对应的数据是可以改变的,如果不知道用变量那么就需要记住内存地址来进行操作

在这里插入图片描述

1.2如何使用变量

  1. 声明变量(申请内存地址)
    • 数据类型 变量名 ;
  2. 变量的初始化(对变量进行赋值)
    • 变量名 = 值 ;
  3. 使用变量
pub1ic class demo{
pub1ic static void main(string[] args){
//力式一
//1.中明变量
int a;
1/2.变量初始化
a=10;
//3.使用变量
System. out. print1nCa);
*/
//方式二
//1.声明变量并且初始化变量
int a 10;
//2.使用变量
System. out. print1n("a的值为: "+a);
*/
//方式三
//连定义多个变量
int a,b,c=10;
//使用变量
//System. out. print1n("连赋值的a的值为: "+a);
错误
//system. out. print1n("连赋值的b的值为: "+b);
错误
System. out. print1n("连赋值的C的值为"+C);
//注意:在java当中变量-定婴初始化才能使用
}

注意:在Java中变量一定要初始化才能使用

1.3变量命名规范

  • 只能是数字、字母、下划线、$组成
  • 不能使用数字开头
  • 不能使用Java中的关键字和保留字
    • 关键字
      在这里插入图片描述
      在这里插入图片描述

    • Java 保留字:现有 Java 版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字 byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

  • 使用驼峰命名法(两个单词以上组成)
    • 包名:多单词组成时所有字母都小写:xxxyyyzzz
    • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
    • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
    • 总原则:见名知意

二、数据类型

2.1

  • 基本数据类型

    • 整数类型:byte short int long

    • 浮点类型:float double

    • 布尔类型:boolean

    • 字符类型:char

    • public class Demo01{
      	public static void main(String[] args){
      		//声明变量并初始化
      		//整数类型
      		byte a1=10;
      		short a2=10;
      		int a3=10;
      		long a4=10L;
      		//浮点类型
      		float b1=10.1F;
      		double b2=10.1;
      		//布尔类型
      		boolean c=true;
      		//字符类型
      		char d1='A';
      		//使用变量
      		System.out.println("byte:"+a1);
      		System.out.println("short:"+a2);
      		System.out.println("int:"+a3);
      		System.out.println("long"+a4);
      		System.out.println("float"+b1);
      		System.out.println("double"+b2);
      		System.out.println("boolean:"+c);
      		System.out.println("char:"+d1);
      	}
      }
      
      • 取值范围

        • 整型

          • byte的取值范围为**-128~127**,占用1个字节(-2的7次方到2的7次方-1)
          • short的取值范围为**-32768~32767**,占用2个字节(-2的15次方到2的15次方-1)
          • int的取值范围为**(-2147483648~2147483647)**,占用4个字节(-2的31次方到2的31次方-1)
          • long的取值范围为**(-9223372036854774808~9223372036854774807)**,占用8个字节(-2的63次方到2的63次方-1)
        • 浮点型

          • float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节
          • double 1.797693e+308~ 4.9000000e-324 占用8个字节
        • boolean型(布尔型)

          这个类型只有两个值,true和false(真和非真)

          • boolean t = true;取值为1
          • boolean f = false;取值为0
        • char型(文本型)

          ​ 用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容

          ​ 字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加’ ‘

          字符有三种表示方式:
          1.字符'A'   '中'
          2.数字 97 65 20
          3.十六进制 '\u0041'  '\u0025'
          
  • 引用数据类型

    • String 类 接口 数组

2.2数据类型细节

  • long 类型数据使用时候要在最后添加Ll
  • float 类型数据需要在最后添加Ff
  • 字符必须使用 ’ ’ 来表示

2.3转义字符

  • 转义字符:转变字符原有含义
    • 常见的转义字符:\n 表示换行 \t 表示一个制表位 \u表示16进制
    • 转义字符 注意事项:\不能单独使用

2.4引用数据类型

String 表示引用数据类型

在Java中一切被" "包裹起来的类型都是引用数据类型

public class Demo{
	public static void main(String[] args){
		
	String n="asdasdasdasdasdasdasdas";
	System.out.println(n);
	
	}
}

三、数据类型转换

  • 在Java中要求等号左边与等号右边类型一致。若类型不一致,那么就需要进行类型转换

3.1自动类型转换

  • 在数据类型兼容的情况下,小转大就是自动类型转换

  • 自动类型转换也称为隐式转换,意思就是,不做任何操作也可以

    	public class Demo{
    			public static void main(String[] args){
    			byte a1=10;
    			//等号左边是int类型 等号右边是byte
    			//自动类型转换
    			int a2=a1;
    			System.out.println(a2);
    		
    		
    		
    			int b1 = 111;
    			//左边是double 右边是int
    			double b2 = b1;
    			System.out.println(b2);
    		}
    	}
    
    

3.2强制类型转换

  • 在数据类型兼容的情况下,大专小就是强制类型转换
  • 也称之为显式转换,需要添加相对应的语法
    • 语法:(数据类型)变量
public class Demo{
	public static void main(String[] args){
		int a1 = 100;
		//左边为short 右边为int  
		short a2=(short)a1;
		System.out.println(a2);
		
		
		
		float b1=(float)3.14159;
		System.out.println(b1);
		
		
		
		//左边是long 不加L是int类型
		long c1 = (long)10000000000000000;
		System.out.println(c1);
		/*
		
		*/
        /*
        数据类型的提升:
        1.计算当中如果有double,结果也是double
      	  计算当中如果有float,结果也是float
      	  计算当中如果有long,结果也是long
   	   	  计算当中如果有int,结果也是int
   	   	2.byte short char 类型在计算中会自动提升为int类型
        */
	}
}
类型转换注意事项 :
  • 数据类型转换注意的问题:
    		1.boolean 不参与任何的类型转化
    		2.数据类型转换房子范围的大小(byte   short|char int long float double)
    		3.在Java中任意一个整数都是int ,任意一个小数都是double
    		4.在强制类型转换当中会造成数据丢失
    

四、运算符

4.1、算数运算符

在这里插入图片描述

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。

对于除号/,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分

**+**除字符串相加功能外,还能把非字符串转换成字符串。

public class Demo {
    public static void main(String[] args) {
        //取余 求模 % 前面的是被模数 后面的是模数
        //除法 / 前面的是被除数 后面的是除数
        int a = 3;
        int b = 2;
        System.out.println(a % b);
        //如果对负数取模,可以把模数负号忽略不记
        System.out.println(3 % 2);
        System.out.println(-3 % 2);
        System.out.println(3 % -2);
        System.out.println(-3 % -2);
        //整数之间做除法时,只保留整数部分而舍弃小数部分
        System.out.println(3 / 2);
        System.out.println(3.0 / 2);

        //++在变量的基础上加1 前面:先加1,再赋值  后面:先赋值,再加1
        int i = 10;
        int t1 = ++i;
        System.out.println(i);
        System.out.println(t1);
		/*
		    ++i;
		    System.out.println(i);
		*/
    }
}

5.2、赋值运算符

符号**=**,不是我们通常说的等于,在Java中它的意思是把右侧的值左侧

当**=**两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理

支持连续赋值:x = y = 1

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

public class Demo {
    public static void main(String[] args) {
        //赋值运算
        int x = 10;
        int y;
        //连续赋值
        x = y = 1;
        //扩展赋值运算
        x += 2; //x = x + 2;
        System.out.println(x);
        System.out.println(y);
    }
}

4.3、关系运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yBS4eLWJ-1665475107093)(D:\Folder\笔记\img\关系运算.jpg)]

关系运算符的结果都是boolean型,也就是要么是true,要么是false

关系运算符== 不能误写成 =

public class Demo {
    public static void main(String[] args) {
        //关系运算
        int a = 10;
        int b = 100;
        System.out.println(a > b); //false
        System.out.println(a >= b); //false
        System.out.println(a <= b); //true
        System.out.println(a < b); //true
        System.out.println(a == b); //false
        System.out.println(a != b); //true
    }
}

5.4、逻辑运算符

与(&或&&):两侧为真,则为真;一侧为假,则为假。

或(|或||):两侧为假,则为假;一侧为真,则为真。

非(!):取反,真的变成假,假的变成真。

异或(^):强调的是异,两侧相同则为假,两侧不同则为真,体现的是一个

public class Demo {
    public static void main(String[] args) {
        //逻辑运算 &逻辑与 两个都为真(true),则为真,一侧为假,则为假(false)
        System.out.println((5 > 5) & (4 > 3));
        //|逻辑或 一侧为真,则为真,两侧为假,则为假
        System.out.println((5 > 5) | (4 > 4));
        //!逻辑非 取反
        System.out.println(!(5 == 5));

        // ^异或 两边相同返回假,两边不同返回真
        System.out.println(true^true);
        System.out.println(true^false);
    }
}

**&&&**区别:

  • **&**左边无论真假,右边都进行运算
  • **&&**如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

**|||**区别:

  • **|**左边无论真假,右边都进行运算
  • **||**如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算
public class Demo {
    public static void main(String[] args) {
        //&&短路与 两个都为真(true),则为真,一侧为假,则为假(false),左侧为假,右侧不进行运算
        int x1 = 10;
        int y1 = 100;
		if((x1 != 10) && (++y1 > 100)) {

		}
		System.out.println(y1);

        //||短路或 一侧为真,则为真,两侧为假,则为假,左侧为真,右侧不进行运算
        if((x1 >= 10) || (++y1 > 100)) {

        }
        System.out.println(y1);
    }
}

4.5、三元运算符

语法:(条件表达式)? 表达式1:表达式2

条件表达式为true,运算后的结果是表达式1

条件表达式为false,运算后的结果是表达式2

表达式1和表达式2为同种类型

public class MyTest13 {
    public static void main(String[] args) {
        //三元运算符,判断最大值
        int x1 = 10;
        int x2 = 100;
        int max = (x1 >= x2) ? x1 : x2;
        System.out.println(max);
    }
}

4.5、三元运算符

语法:(条件表达式)? 表达式1:表达式2

条件表达式为true,运算后的结果是表达式1

条件表达式为false,运算后的结果是表达式2

表达式1和表达式2为同种类型

public class Demo {
    public static void main(String[] args) {
        //三元运算符,判断最大值
        int x1 = 10;
        int x2 = 100;
        int max = (x1 >= x2) ? x1 : x2;
        System.out.println(max);
    }
}

4.6、位运算符

  • | :按位或
    • 特点是:相同位数上有1的结果就1
  • &:按位与
    • 特点是:相同位上同为1才是2
  • ^:按位异或
    • 特点:相同位上为0不同为1
  • ~:按位取反
    • 特点:将每一位上的数字取反 将补码进行按位取反
    • 先求补码 通过反码 获取源码
    • 数字加一取反

4.7、左移,右移

  • 左移**<<**
    • 特点:将二进制的数位整体向左移动N位 低位补0
  • 右移**>>**
    • 特点:将二进制的数位整体向右移动N位 如果是正数补0,负数补1
  • 无符号右移 >>> 要用32位来表示 无论正负 高位补0
    • 特点:将二进制数位整体向右移动N位 高位补0
public class Demo{
	public static void main(String[] args){
		System.out.println(16|7);
		System.out.println(18&23);
		System.out.println(13^34);
		System.out.println(~14);
		System.out.println(18<<2);
		System.out.println(23>>2);
		System.out.println(-18>>2);
		System.out.println(-23>>>2);	
	}
}

4.8、运算符优先级

在这里插入图片描述

五、控制台录入

控制台录入指的是通过键盘输入数据与程序之间进行交互

使用步骤:

  1. 创建键盘输入对象Scanner
  2. 引入Scanner类
  3. 使用创建好的Scanner对象来进行扫描输入内容
//引入Scanner类
import java.util.Scanner;
public class Demo{
	public static void main(String[] args){
		//创建Scanner扫描对象
		Scanner sc =new Scanner(System.in);
		//使用创建好的Scanner对象来进行扫描输入内容
		System.out.println("请输入数字:");
		int a =sc.nextInt();
		System.out.println("输入的数字:"+a);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值