JavaSE 02 标识符、常量、变量、数据类型转换、运算符表达式

第一章 标识符

  • 标识符: 程序中我们自己定义的内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。
  • 命名规则硬性要求
    • 标识符可以包含 英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)。
    • 标识符不能以数字开头。
    • 标识符不能是关键字。
  • 命名规范软性建议
    • 类命名规范:首字母大写,后面每个单词首字母大写(大驼峰式)HelloWorld
    • 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)helloWorld
    • 方法名规范:同变量名

第二章 常量

2.1概述

  • 常量:是指在程序中固定不变的量

2.2分类

类型含义数据举例
整数常量所有的整数0,1,567,-9
小数常量所有的小数0.0,-0.1
字符常量单引号引起来,只能写一个字符,必须要有内容‘a’,’ ’(中间是空格也可以)
字符串常量双引号引起来,能写多个字符,也可不写“a",“Hello”,”“
布尔常量只有两个值true,false
空常量只有一个值null

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

整数型 byte short int long
浮点型 float double
字符型 char
布尔型 boolean

数据类型关键字内存占用Java取值范围
字节型byte1字节-128~127
短整型short2字节-32768~32767
整型int(默认)4字节-231~231-1
长整型long8字节-263~263-1
单精度浮点数float4字节1.4013E-45~3.4028E+38
双精度浮点数double(默认)8字节4.9E-324~1.7977E+308
字符型char2字节0-65535
布尔型boolean1字节true false

注意!!

Java中的默认类型:整数型int 、浮点型double。
浮点数中要使用float类型要在数字后加上一个F(大小写都可但是推荐大写);整数使用long加上字母L。
二进制的计算机无法准确的表示分数。
浮点数使用了科学计数法所以内存占用和取值范围不一定相关;例如long和float。

2.4 引用数据类型

  • 数组接口字符串
    (后面再学)

第三章 变量

3.1 概述

  • 变量:程序中可以变化的量

3.2 创建变量方法

  • 格式
  1. 数据类型 变量名称;
    变量名称 = 数据值; // =号代表赋值 将右边的数据值赋值给左边的变量

    int niu;
    niu = 100;
    
  2. 数据类型 变量名称 = 数据值;

    int niu = 100;
    
  3. 数据类型 变量名称1,变量名称2,...;
    变量名称1 = 数据值;
    变量名称2 = 数据值;
    …;

    int a,b,c;
    a = 1;
    b = 2;
    c = 3;
    
  4. 数据类型 变量名称1 = 数据值,变量名称2 = 数据值,...;

    int a = 1,b = 2,c = 3;
    
  • !!注意!!
    • 数值的范围不能超过左侧数据类型的取值范围。
    • 在同一个{}内,变量名称不能重复。(同理变量的使用不能超出作用域)
    • float和long要记得加上F和L。
    • 没有赋值的变量不能使用。

第四章 数据类型转换

当数据类型不同时,将会发生数据类型转换

4.1 自动类型转换(隐式)

  • 特点:代码不需要进行特殊处理
  • 规则:数据范围从小到大
long num1 = 100;
/*
右边100是int类型,左边是long
赋值号把右边的int常量,交给左侧的long变量储存
int --> long,符合了范围从小到大,所以代码发生了自动类型转换
*/

4.2 强制类型转换(显式)

  • 代码需要经过特殊的处理,不能自动的转换

  • 格式:范围小的类型 范围小的变量名 = (范围小的类型) 原本范围大的数据;

    int num = (int) 100L;
    
  • 注意事项

    • 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出(原本大范围的数据装不进范围小类型的变量中)
      int num2 = (int) 6000000000L;
      system.out.println(num2);//1705032704 这就是溢出的数据
      int num3 = (int) 3.5;
      system.out.println(num2);//3 这就是精度损失;不是四舍五入而是舍弃掉小数位
      
    • byte/short/char这三种类型都可以发生数学运算
      char zifu1 = 'A';
      system.out.println(zifu1 + 1);//66 大写字母A被当成65处理
      
      一旦char类型发生了数学运算,那么它就会按照一定的规则翻译成一个数字
    • byte/short/char这三种类型在运算的时候,都会先提升为int类型,在进行计算
      byte num4 = 40;//注意!右侧的数值大小不能超过左侧的类型范围
      short num5 = 50;
      int result1 = num4 + num5;
      short result2 = (short)(num4 + num5);
      system.out.println(result1);//90 byte + short --> int + int --> int
      system.out.println(result2);//90 int强制转化为short,必须保证逻辑上的真实大小没有超过short类型范围,否则会发生数据溢出
      
    • boolean类型不能发生数据类型的转换

4.3 ASCII码介绍

  • ASCII码表:American Standard Code for Information Interchange 美国信息交换标准代码 0-127
  • Unicode码表:万国码表 从128开始
  • 记住’0’-48 ‘A’-65 ‘a’-97

第五章 运算符与表达式

运算符是进行特定操作的符号

5.1 算数运算符

算数运算符包括
+加法运算符,字符串连接运算符
-减法运算
*乘法运算
/除法运算
%取模运算,两个数字相除取余数
++--自增自减运算

Java中,整数使用以上运算符,无论怎么计算也不会得到小数

public static void main(String[] args){
    int i = 1234;
    System.out.println(i/1000*1000);//1000
}

注意:一旦运算当中有不同类型的数据,结果会是数据类型范围大的那种

  • 四则运算当中的加号"+"有三种用法:
    1.对于数值来说,那就是加法
    2.对于字符char类型来说,在计算之前,char会被提升为int,然后在计算
    3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接
    4.任何数据类型和字符串连接的时候,结果都会变成字符串
String str1 = "Java";
System.out.println(str1 + 20 + 30);//Java2030
System.out.println(str1 + (20 + 30));//Java50
  • 自增自减运算符
    含义:让一个变量涨一个数字1,或者让一个变量降数字1
    格式:++var; --var;
    使用方法:
  1. 单独使用:不能和其他任何操作混合,自己独立成为一个步骤。前后++没有区别。
  2. 混合使用:和其他操作混合,例如赋值混合,或者打印操作混合,等。
    A.如果是前++,那么这个变量立刻马上+1,然后拿着结果进行使用【先加后用】
    B.如果是后++,那么首先使用变量本来的数值,然后再让变量+1.【先用后加】
  3. !!!不管先加后加最终变量都要加!!!
    注意:只有变量才能使用自增自减运算符。常量不能发生改变,所以不能用。
    //例1
    int num1 = 20;
    System.out.println(++num1);//21	混合使用,先++,变量马上变成21,然后打印结果21
    System.out.println(num1);//21
    
    int num2 = 30;
    System.out.println(num2++);//30	混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31
    System.out.println(num2);//31
    
    //例2
    int num3 = 40;
    int result1 = --num3;
    System.out.println(result1);//39
    System.out.println(num3);//39
    
    int num4 = 50;
    int result2 = num4--;
    System.out.println(result2);//50
    System.out.println(num4);//49
    
    //例3 复杂运算(练习用,编程时应该让人通俗易懂的代码才是好代码)
    int x = 10;
    int y = 20;
    int result3 = ++x + y--;
    System.out.println(result3);//31
    System.out.println(x);//11
    System.out.println(y);//19	
    

5.2 赋值运算符

赋值运算符
=等于号
+=加等于
-=减等于
*=乘等于
/=除等于
%=取模等于
  • 基本赋值运算符

  • 就是一个“=”,代表将右侧的数据交给左侧的变量

  • 复合赋值运算符

    • += a += 1 相当于 a = a + 1
    • -= b -= 2 相当于 b = b - 2
    • *= c *= 3 相当于 c = c * 3
    • /= d -= 4 相当于 d = d / 4
    • %= e%=5 相当于 e = e % 5
  • 注意:

    1.只有变量才能使用赋值运算符
    2.复合赋值运算符其中隐含了一个强制类型转换

byte num = 30;
num += 5;
//num = num +5;
//num = byte + int;
//num = int + int;
//num = int;
//num = (byte)int;
System.out.println(num);//35

5.3 比较运算符

比较运算符
==比较符号两边数据是否相等,相等结果是ture。
<比较符号左边的数据是否小于右边的数据,如果小于结果是ture。
>比较符号左边的数据是否大于右边的数据,如果大于结果是ture。
<=比较符号左边的数据是否小于或等于右边的数据,如果小于结果是ture。
>=比较符号左边的数据是否大于或等于右边的数据,如果大于结果是ture。
!=不等于符号,如果符号两边的数据不相等,结果是ture。
  • 注意:
  1. 比较运算符的结果一定是boolean值,成立就是ture,不成立就是false
  2. 如果进行多次判断,不能连写(例如 :2 < x < 5 ;这个等式在数学中是成立的,但是程序中不可以这么写,只能用逻辑运算符来判断)

5.4 逻辑运算符

  • 用于连接若干个boolean值
逻辑运算符
&&与(并且) 全是true,才是true;否则就是false。
||或(或者) 至少一个是true,就是true;全是false,才是false。
!非(取反) 本来是true,变成false;本来是false,变成true。
  • &&、或||,具有短路的效果,如果根据左边已经可以判断得到最终结果,那么右边的代码不再执行,从而节省一定的性能。
//false && ...
int a = 10;
System.out.println(3 > 4 && ++a < 100);//false
System.out.println(a);//10
//true || ...
int b = 20;
System.out.println(3 < 4 && ++b < 100);//true
System.out.println(b);//20
  • 注意:
    • 逻辑运算符只能用于boolean值
    • 与、或运算符左右都要有boolean值,取反只要有唯一个boolean值
    • 与、或运算符,如果有多个条件可以连写
//2 < x < 5应该表示为
2 < x && x < 5;

5.5 三元运算符

  • 一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反、自增++、自减--
  • 二元运算符:需要两个数据才可以进行操作的运算符。例如:加法+、减法-
  • 三元运算符:需要三个数据才可以进行操作的运算符。
    • 格式:数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
    • 流程:如果成立为true,那么将表达式A的值赋值给左边的变量
      如果成立为false,那么将表达式B的值赋值给左边的变量
int a = 10;
int b = 20;

int max = a > b ? a : b;//判断a>b是否成立
  • 注意:
  1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求
  2. 三元运算符的结果必须被使用
//情况1
int result = 3 > 4 ? 2.5 : 10;//错误;因为2.5不符合左侧的int数据类型
//情况2
System.out.println(a > b ? a : b);//正确的;因为左边没有指定类型,且结果有被(打印)使用
//情况3
a > b ? a : b;//错误;结果没被(赋值)使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值