02_Java基本语法(上)-变量与运算符

JAVA的基本语法

一丶关键字与保留字

关键字

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

保留字

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

二丶标识符

标识符定义:

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 
技巧:凡是自己可以起名字的地方都叫标识符。 

定义合法标识符规则:

1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头。
3.不可以使用关键字和保留字,但能包含关键字和保留字。
4.Java中严格区分大小写,长度无限制。
5.标识符不能包含空格。

Java中的名称命名规范: org.lanqiao

包名:多单词组成时所有字母都小写:xxxyyyzzz 以公司域名的逆序作为基础包名
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

注意1:在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不允许使用。

三丶变量

1.变量的概念:

内存中的一个存储区域
该区域的数据可以在同一类型范围内不断变化
变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值
变量的作用: 用于在内存中保存数据

在这里插入图片描述

2.变量的作用: 用于在内存中保存数据

3.使用变量注意:

Java中每个变量必须先声明,后使用
使用变量名来访问这块区域的数据
变量的作用域:其定义所在的一对{ }内
变量只有在其作用域内才有效
同一个作用域内,不能定义重名的变量

4、声明变量

语法:<数据类型> <变量名称>
例如:int var; 

5、变量的赋值

 语法:<变量名称> = <值>
 例如:var = 10; 

6、声明和赋值变量

语法: <数据类型> <变量名> = <初始化值>
对于声明在方法内的变量 必须在使用之前至少有一次赋值操作

7.变量的分类

按数据类型分类

在这里插入图片描述
Java是强类型语言 意味着所有的变量都必须有一个明确的类型
类型的作用就是决定变量在内存中分配的空间大小

按变量声明的位置:
局部变量:声明在方法上或方法内的变量
成员变量:声明在类的内部,方法外的变量

区别:
作用范围:
成员变量得作用范围是整个类
局部变量的作用范围是整个方法内
初始化:
局部变量:在使用之前必须有一次赋值操作
成员变量:可以在使用之前不赋值 在于他有默认值
在这里插入图片描述

四丶基本数据类型(八种)

1.整数类型:byte、short、int、long(整数型数据默认类型是int)

在这里插入图片描述

声明整型变量时  针对不同的类型 应进行合理赋值  不要超出期表示范围
对于long类型来说  数据末尾需要加L/l进行标记

2.浮点型:float、double(浮点型数据默认类型是double)

在这里插入图片描述

如果使用float来表示浮点型数据 需要在数据的末尾加F/f

3.字符类型:char

char 型数据用来表示通常意义上“字符”(2字节)
字符在Java中采用单引号 使用双引号引起来的叫字符串
字符就是单个字母 或汉字 或数字
字符型变量的三种表现形式:
字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';

Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。 例如:char c3 = ‘\n’; // '\n'表示换行符

直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表 一个十六进制整数。如:\u000a 表示 \n。

char类型是可以进行运算的。因为它都对应有Unicode码。
在这里插入图片描述

4.布尔型:boolean

boolean 类型用来判断逻辑条件,一般用于程序流程控制:
if条件控制语句;
while循环控制语句;
do-while循环控制语句;
for循环控制语句;
boolean类型数据只允许取值true和false,无null。
不可以使用0或非 0 的整数替代false和true,这点和C语言不同。
Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的 boolean 值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false 用0表示。———《java虚拟机规范 8版》

5.ASCII 码、Unicode 编码、UTF-8 (了解)

将世界上所有的符号都纳入其中 ,每一个符号都给予一个独一 无二的编码

五丶基本数据类型转换

1.自动转化类型:容量小的类型自动转换为容量大的数据类型。

在这里插入图片描述
整型与字符型:byte short char int long

byte short  char  可以直接转换为int
byte short  char 类型之间不能相互转换
int 也可以直接转换为long  需要在数据的结尾添加L

浮点型:float double

    float 也可以直接转换为double

特殊情况:
long --> float
可以转换
float 32位 使用最高位1位表示符号位 8位表示E 23位表示小数
long转换为float 可以自动转换 但是这种转换之后E后的数据具有不确定性 尽量不用
long到double时同样的

2.强制类型转换:将容量大的类型转换成容量小的类型

 语法: 接受类型  变量名  = (将要转换的类型)待转换变量
 {	int a = 1;
    char b;
    b = (char)a;  //强制转换格式
    }

在这里插入图片描述在这里插入图片描述

3.特殊情况

1.整数型转换为浮点型(小到大):

long --> float
可以转换
float 32位  使用最高位1位表示符号位  8位表示E 23位表示小数
long转换为float 可以自动转换 但是这种转换之后E后的数据具有不确定性  ==尽量不用==
long到double时同样的 

2.浮点型转换为整数型(大到小)

   进行转换的时候会舍弃小数位

3.boolean 类型占一个字节的空间

 boolean true/false  --> 1 / 0
理论上一位(bit)就可以保存boolean  但是最小的存储单元时byte (字节)  所以在分配空间时 依然分配一个字节

boolean类型不可以转换为其它的数据类型。
4.String类型:

不属于8中基本类型 属于引用类型
使用方式与基本数据类型一致。

六丶进制

1.常用进制:

	二进制 0 1  
    八进制  0 1 2 3 4 5 6 7 
    十进制  0-9
    十六进制 0-9 A-F

2.二进制的表示形式:原码 反码 补码

(1)正数 的原码 反码 补码都是一样
(2)负数 原码 将一个负数表示程二进制
反码 按位取反 0变1 1 变0
补码 反码+1

为什么要使用原码、反码、补码表示形式呢?(补码运算)
 就在与计算机无法识别符号位  所以在运算中  将符号位也参与运算    只有加法没有减法
( Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;
 当是long类型时,二进制默认占64位,第64位是符号位)——左数第一位符号位

3.进制间相互转化

十进制与二进制互转

在这里插入图片描述

二进制 八进制互转

每三位2进制表示一位8进制

二进制 十六进制互转

每四位二进制表示一位16进制的数

在这里插入图片描述

要将一个十进制的数转换为八进制或十六进制 首先转换为2进制

不同进制的数据的表示:

十进制直接表示  
二进制直接使用01表示
八进制表示的时候一般在数据的前边加0   014
十六进制表示的时候一般在前边加上0x 表示是十六进制表示  0xC

练习:
System.out.println(bb1);输出时 所有的整数都按照int类型输出

在这里插入图片描述

七丶运算符

包括:
算数运算符
逻辑运算符
赋值运算符
关系运算符
位运算
三元运算符

1.算数运算符

在这里插入图片描述

算数运算中  byte  short char  int  运算的结果都是int类型
运算中如果有long类型存在 则结果long类型
在整数类型及char类型做运算的时候 如果操作数如果时byte short char 那么运算的结果是int
如果其中有int类型的操作数 结果肯定是int
如果操作数中有long类型 结果肯定是long
如果在运算中操作数中有float类型 则结果为float
如果在运算中操作数中有double类型 则结果为double
boolean不能参与算数运算 boolean也不能和其他类型之间进行相互转换

在这里插入图片描述

对于/  *法运算 其中如果有负数 则结果为负
在除法运算中 取得是相除的商
%取模运算  结果为余数  结果的正负与第一个操作数保持一致
++ 自增
--自减
++  作用都是给当前操作数+ 1
++写在操作数之后  是先取操作数的值 然后在给该数加1
++写在操作数之前 是先加1 在取值

在这里插入图片描述

拓展(了解)
public static  void  main(String[] args){
		int i = 10;
		i = i++;
		System.out.println(i);   //输出10
		i = ++i;
		System.out.println(i);   //输出11

上述代码 特殊性情况 应避免此种用法
在一条语句中,应尽量避免对统一变量的多次运算操作。
在这里插入图片描述
在这里插入图片描述

练习
随意给出一个整数,打印显示它的个位数,十位数,百位数的值。 格式如下: 
数字xxx的情况如下: 个位数: 十位数: 百位数: 
例如: 
数字153的情况如下: 
个位数:3 
十位数:5 
百位数:1
public static void main(String[] args)
	{
		int a = 153;

		int b = a / 100;
		int c = a % 100 / 10;
		int d = a % 10;

		System.out.println("个位数:" + d);
		System.out.println("十位数:" + c);
		System.out.println("百位数:" + b);
	}

2.赋值运算符:=

当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制 类型转换原则进行处理。
支持连续赋值。

= += -+ /= %=
在这里插入图片描述
在这里插入图片描述

① 编译报错 结果是int  应写出s = s + (short)2;
 ②正确   += 会进行强制类型转换
 byte b = 20;
		 	byte sum = 0  ;
		 // sum = b + 1;//编译不通过  因为用int到byte 会有精度损失 
	
			sum += 1; //编译通过 正常运行 其中会默认进行强制类型转换

3.比较运算

在这里插入图片描述

比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=” 。

思考1:
boolean b1 = false; //区分好==和=的区别。 
if(b1==true) 
    System.out.println("结果为真"); 
else 
    System.out.println("结果为假");//输出结果为假

4.逻辑运算符

逻辑运算符用于连接布尔型表达式,在Java中不可以写成33 & x<6 。
&—逻辑与 | —逻辑或 !—逻辑非 && —短路与 || —短路或 ^ —逻辑异或
在这里插入图片描述

&运算中只要有false  结果就为false
| 运算中 只要有true  结果就为true
 
! true 为false  false 为true

^  当两个不同时  则为true 相同时为false
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。左边为假,右边参与
练习:

在这里插入图片描述
1.x=2,y=2
2.x=2,y=1
3.x=7,y=2
4.x=7,y=1

【面试题】程序输出:
class Test { 
 public static void main (String [] args) { 
     boolean x=true; 
     boolean y=false; 
     short z=42; 
     if((z++==42)&&(y=true))z++;    
     if((x=false) || (++z==45)) z++;
       System. out.println(“z=+z);    //每一个z++都运行了
    } 
  } 
  输出:z=46

5.位运算符(对计算机二进制码进行运算)

位运算 是针对二进制数据 中的每一位进行运算
在这里插入图片描述
在这里插入图片描述

位运算效率最高:位运算是对机器码二进制进行操作 
面试题:使用最高效的算法 计算2的三次方
计算2的n次方  2<<(n-1)

6.三元运算符关系运算?结果1 : 结果2;

在这里插入图片描述

1.表达式1和表达式2为同种类型
2.三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句 
2)三元运算符要求必须返回一个结果。 
3)if后的代码块可有多个语句 
练习:

获取两个数中的较大数

public static  void  main(String[] args){
		int a =10;
		int b =20;
		int c =  a > b ?  a : b ;
		System.out.println(c);//输出20
		String s = a > b ? "大于" : "小于";
		System.out.println(s)//输出小于
	}
	

获取三个数中的较大数

public static  void  main(String[] args){
	 int a = 6;
	 int b = 2;
	 int c = 9 ;

	 int d = (a > b ?a : b ) > c ?(a > b ?a : b ) :c;
	 System.out.println(d);
	}

交换两个整型变量的值

	int a = 6;
	 int b = 2;
	 int temp = 0;
	 temp = a;
	 a = b;
	 b = temp;
	 System.out.println(a +"--"+ b);

不使用中间变量 交换两个整型变量的值

// 不使用中间变量 交换两个整型变量的值  方式一
		int a = 6;
		int b = 2 ;
		a = a + b; // a = 8;
		b= a- b; // b = 6;
		a = a - b ;
		System.out.println(a +"---"+b);
 // 不使用中间变量 交换两个整型变量的值  方式二   二进制异或运算
		int a = 6;
		int b = 2 ;
		a = a ^ b;
		b = a ^ b ;
		a = a ^ b;

		System.out.println(a +"---"+b);

7.运算符的优先级

运算符有不同的优先级,所谓 优先级就是表达式运算中的运 算顺序。如右表,上一行运算 符总优先于下一行。
只有单目运算符、三元运算符、 赋值运算符是从右向左运算的。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础语法中,标识符是由程序员自己规定的代表一定含义的单词。标识符可以用于标识变量、方法、类等。主要注意的是,标识符不能修改,而且其中的main是一个特殊的标识符,无法自己规定。 在Java基础部分的相关知识讲解中,也包括了关于标识符的内容。 如果你想要判断一个字符串是否是合法的Java标识符,可以使用以下代码作为参考: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner reader = new Scanner(System.in); while (reader.hasNext()) { int flag = 1; String str = reader.nextLine(); char ch; ch = str.charAt(0); int len = str.length(); if (Character.isJavaIdentifierStart(ch)) { for (int i = 1; i < len; i++) { ch = str.charAt(i); if (!Character.isJavaIdentifierPart(ch)) { flag = 0; break; } } } else { flag = 0; } if (flag == 0) System.out.printf("false\n"); else System.out.printf("true\n"); } reader.close(); } } ``` 这段代码可以读取用户输入的字符串,并判断其是否是合法的Java标识符。如果是合法的标识符,则输出true,否则输出false。 希望以上内容能够帮助到你。如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【零基础学Java】Day-02 基础语法--标识符](https://blog.csdn.net/qq_52681453/article/details/126020455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Java基础[02-Java基础语法1].ppt](https://download.csdn.net/download/xiaoyoupei/13206691)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [2021级-JAVA02 基础语法1--标识符、常量与变量、数据类型、运算符与表达式](https://blog.csdn.net/weixin_62455462/article/details/126696523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值