02 Java基础语法(变量+数据类型+运算符)(上)

简介: 02 Java基础语法(变量+数据类型+运算符)

2 基础语法

2.1 二进制(复习总结)
  • 冯·诺依曼理论核心思想
  • 计算机应该采用二进制。
  • 存储程序执行:程序和数据首先存入内存,并按照事先编写好的程序顺序执行。
  • 计算机硬件由运算器、控制器、存储器、输入设备、输出设备五大部分组成。
  • 计算机是由电流驱动的,电流只有正极和负极,只有这两种状态,也就是说计算机底层实际上只能表示这两种状态,那他怎么能够表示现实世界中负责的数据呢?计算机就是采用二进制的方式来表示这些复杂数据的。
  • 电流只有正极和负极,那么就可以表示基本的两个数字:1和0
  • 而1和0这样的数字串组成的数字我们称为二进制。

二进制的特点:满2进1位 (1 10 11 100…)

十进制的特点:满十进1位 (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20…)

进制转换(二进制 八进制 十进制 十六进制)
  • 从右到左用二进制的每个数去乘以2的相应次方相加。

  • 公式:从二进制的最右边开始,2的0次幂,2的1次幂,2的2次幂,2的3次幂...以此类推,然后让每一位和对应的二进制位相乘,然后将每一个相乘的结果再求和,就是最终的十进制。
  • 除2取余,逆序排列。
    公式:让十进制的数字除以2(不断的除以2,直到最后商是0为止),然后余数逆序输出,就是对应的二进制。
  • 进制转换不是必须掌握的,在实际开发中也用不上,如果遇到了,不会转换,可以使用计算器。
2.2 变量
2.2.1 变量定义

概念:计算机内存中的一块存储空间,是存储数据的基本单元。

变量三要素:变量类型,变量名,变量值

2.2.2 使用变量
  • **申明变量(**申请内存地址) main自动填充
  • 语法: 数据类型 变量名; ------int a;(数据类型空格变量名)
  • 变量初始化(给变量赋值)
  • 语法: 变量名 = 值; -------a = 10;
  • 使用变量(注意,变量初始化了才能使用)
  • 语法:打印输出、方法传参、进行计算; -----System.out.println(a); sout自动填充输出

Java是强类型语言,变量的类型必须与数据的类型一致。

2.2.3 声明变量的3种方式
  • 先声明,再赋值:【常用】
    数据类型 变量名;
    变量名 = 值;
  • 声明并赋值:【常用】
    数据类型 变量名 = 值;

多个同类型变量的声明与赋值:【了解】

数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;

public class test01 {
    public static void main(String[] args) {
       int a;  //先声明
       a = 10;  //再赋值
        System.out.println(a);
        int money = 10000;//声明变量+初始化
        System.out.println(money);        
    }
}


public class test01 {         
    public static void main(String[] args) {
        int b = 66;int c = 77;int d = 99;         //连续定义
        System.out.println("c的值为"+c);
    }
}//c的值为77


public class test01 {
    public static void main(String[] args) {
        int a,b,c,d = 66;   //相当于int a未赋值; 同 bc未赋值; int d = 66;
        System.out.println("c的值为"+a);
    }
}//报错  不能输出a/b/c,仅仅能输出d
  • 注意:在java中变量一定要初始化(赋值)才能使用
2.3 数据类型和数据类型转换

数据类型java是强类型语言,在定义变量的时候必须指定数据类型

  1. 基本数据类型(在java语言语法中已经定义好了的类型)
  1. 整数类型 byte short int long
  2. 浮点类型(小数类型)float double
  3. 布尔类型boolean
  4. 字符类型char
  1. 引用数据类型 (String
2.3.1 整数类型

4种可表示数值范围不同,常用int和long

定义long类型的变量的时候尽量(long = 1000937766L)加上L l

类型 所占字节 所占位数 取值范围 二进制(十进制)
byte 1字节 8位 -2^7 ~ 2^7-1 (-258~127)
short 2字节 16 -2^15 ~2^15-1(-32768 ~ 32767)
int 4 32 -2^31 ~ 2^31-1(-2147483648 ~2147483647)
long 8 64 -2^63 ~ 2^63-1(-9223372036854775808~9223372036854775807)
拓展

二进制赋值 0b

八进制赋值0

十六进制赋值0x

byte n1= 0b1111;//输出15
byte b=010;  //输出8
int c=0xFF;  //输出255
2.3.2 浮点类型
  • float定义小数的时候要在后面加上F或f
  • double可加可不加,平时开发用double,精确度更高,可表示小数16位

image.png

float 精度6-7 、double 精度15-16

浮点型数值采用科学计数法表示:

2E3 等价于 2 * 10 ^ 3(结果:2000.0)

3E5 等价于 3 * 10 ^ 5(结果:300000.0)注意:double为浮点数的默认类型,如需为float类型赋值时,需要在值的后面追加“F”

float pi = 3.1415926F;  //3.1415925  精度缺失
double d1 = 3.1415926;  // 3.1415926
double d2 = 3.1415926E3;    //3141.5926  科学计数法

拓展

double d3 = 1.4;  //转二进制无法精确表示1.4,只能近似存储
double d4 = 0.5;  //转二进制为
double d5 = 0.9;  //近似存储
System.out.println((d3-d4)/d5); //0.9999999999999999

可直接赋值true / false

也可赋值一个结果为true / false的表达式

注意:Java中的boolean不能参与算数运算

double和float主要是做科学计算,科学计算允许一定范围内的误差

但是金融,会计要求不能有误差,采用BigDecimal

2.3.3 布尔类型
类型 所占字节 所占位数 取值范围 描述
boolean 1字节 8位 true\false 仅可描述“真”或者“假”

可直接赋值true / false

也可赋值一个结果为true / false的表达式

注意:Java中的boolean不能参与算数运算

2.3.4 字符类型-3种
类型 所占字节 所占位数 取值范围 字符编码
char 2字节 16位 0~65535 即2^16-1 Unicode字符集(万国码)
char c1 = 97;    //a  整数赋值,通过十进制数65在字符集中对应的字符赋值
char c11 = 65;  //A
char c2 = 'a';   //a  字符赋值,通过''描述为字符赋值
char c3 = '\u4f0D';  //伍  unicode赋值,
char c3 = '\u0041;  //A    unicode赋值,通过十六进制数41在字符集中所对应的字符赋值

前置知识1:

  • ASCII(American Standard Code for Information Interchange)美国信息交换标准码。
  • 基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
  • ASCII是最通用的信息交换标准,为英文字符设定了统一并且唯一的二进制编码。
  1. 前置知识2:
  • Unicode(万国码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。
  • 它为每种语言中的每个字符设定了统一并且唯一的二进制编码,
  • 以满足跨语言、跨平台进行文本转换、处理的要求,(其中包含了ASCII编码)。
2.3.5 转义字符
转义字符 描述
\n 换行符
\r 回车
\t 缩进(制表位)
\ 反斜线
单引号
‘’ 双引号
public class Demo02 {
    public static void main(String[] args) {
        char e  = '\'';//'
        char e1 = '\\'; // \
        char e2 ='\"';  // "
        char e4 = '"';  // "
        System.out.println(e);
        System.out.println(e1);
        System.out.println(e2);
        System.out.println(e4);
        System.out.println("姓名:张三 \n年龄:22 \n性别:男");   //换行
        // \r表示回车[回到行的最前面]
        System.out.println("12345677\rabc");  //在DOS输出abc45677 (前置并且替换);在idea输出abc
        // \t制表符[表格],内容对齐
        System.out.println("水果\t\t个数\t价格");
        System.out.println("桃子\t\t5个\t30元");
        System.out.println("西番莲\t2个\t15元");  //超过4个字符(英文8个),自动多占一个制表位
        /**
         * 水果   个数  价格
         * 桃子   5个  30元
         * 西番莲  2个  15元
         */
    }
}
2.3.6 引用数据类型
类型 取值范围 字符编码
String 任何” ”之间的字面值 Unicode字符序列
  • 什么是字面值?
  • 在java程序中的数据就是字面值。
  • 在java程序中都有哪些字面值(数据)?
  • 整数型字面值
  • 1 2 3 4 -100 0 …
  • 浮点型字面值
  • 3.0 3.14 3.1415926 …
  • 布尔型字面值(只有两个值)
  • true 真
  • false 假
  • 字符型字面值(单个字符,并且使用单引号括起来的,就是字符)
  • ‘a’
  • ‘b’
  • ‘中’
  • ‘国’
  • 字符串型字面值(凡是使用双引号括起来的,都是字符串)
  • “a”
  • “abc”
  • “hello world,你好世界!”
2.3.7 数据类型转换
  1. 自动类型转换:
    两种类型相互兼容。
    目标类型大于源类型。
  • byte -->short–>int–>long–>float–>double
  • char -->int
  • byte short char 运算时会自动转成int类型
  • 进行算数运算时:
  • 两个操作数有一个为double,计算结果提升为double。
  • 如果操作数中没有double,有一个为float,计算结果提升为float。
  • 如果操作数中没有float,有一个为long,计算结果提升为long。
  • 如果操作数中没有long,有一个为int,计算结果提升为int。
  • 如果操作数中没有int,均为short或byte或char,计算结果仍旧提升为int。
  • 特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。

2.强制类型转换

两种类型相互兼容。

目标类型小于源类型

强制类型转换规则:

  • 整数长度足够,数据完整。

例:int i = 100; byte b = (byte)i; //b = 100

整数长度不够,数据截断。

例:int i = 10000; byte b = (byte)i; //b = 16(符号位变化,可能变为负数)


小数强转整数,数据截断。

例:double d = 2.5; int i = (int)d; //i = 2(小数位舍掉)


boolean的取值为true/false,不可与其他类型转换。

int n = 128;
byte b =(byte)n;
System.out.println(b);  //-128

02 Java基础语法(变量+数据类型+运算符)(下):https://developer.aliyun.com/article/1580152

目录
相关文章
|
18天前
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
48 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
10天前
|
Java 编译器
java“变量 x 可能未被初始化”解决
在Java中,如果编译器检测到变量可能在使用前未被初始化,会报“变量 x 可能未被初始化”的错误。解决方法包括:1. 在声明变量时直接初始化;2. 确保所有可能的执行路径都能对变量进行初始化。
|
1月前
|
Java
Java运算符
Java运算符
47 12
|
1月前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
60 2
|
1月前
|
存储 Java
java基础(7)变量以及变量的分类
Java变量是内存中存储数据的基本单元,包含数据类型、名称和字面值。变量的数据类型决定了分配的内存空间大小。变量声明格式为“数据类型 变量名;”,变量名应符合标识符命名规范。变量可以重新赋值,但数据类型需一致。变量可以一行声明多个,作用域决定了变量的可用范围。变量分为局部变量和成员变量,局部变量定义在方法体内,成员变量定义在方法体外、类体内。
32 2
|
4天前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
14 3
|
1月前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
38 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
12天前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
39 4
|
10天前
|
安全 Java 测试技术
🌟 Java 零基础 | 详解 instanceof 运算符
【10月更文挑战第1天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
17 1
|
12天前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
34 3