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

目录
相关文章
|
1月前
|
存储 Java 容器
Java基本语法详解
本文深入讲解了Java编程的基础语法,涵盖数据类型、运算符、控制结构及数组等核心内容,帮助初学者构建坚实的编程基础。
|
11天前
|
存储 SQL NoSQL
Redis-常用语法以及java互联实践案例
本文详细介绍了Redis的数据结构、常用命令及其Java客户端的使用,涵盖String、Hash、List、Set、SortedSet等数据类型及操作,同时提供了Jedis和Spring Boot Data Redis的实战示例,帮助开发者快速掌握Redis在实际项目中的应用。
154 1
Redis-常用语法以及java互联实践案例
|
6天前
|
安全 Java
使用Java多态性进行数据类型转换
以上示范了如何通过多态性来执行安全有效地对于Java对象间相互之间进行正确方式与场合下正确格式与条件限定内对于各个层级关系内部成员及其功能调取与应有操作处理过程,并通过 `instanceof`关键字确保了程序运行期间遵循逻辑合理并符合预设规则条件限定内正常工作流程而无需担忧潜藏风险问题出现可能带来影响结果质量问题情况存在可能。
45 12
|
6月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
97 13
|
2月前
|
Java 数据库连接 数据库
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
本文全面总结了Java核心知识点,涵盖基础语法、面向对象、集合框架、并发编程、网络编程及主流框架如Spring生态、MyBatis等,结合JVM原理与性能优化技巧,并通过一个学生信息管理系统的实战案例,帮助你快速掌握Java开发技能,适合Java学习与面试准备。
124 2
Java 相关知识点总结含基础语法进阶技巧及面试重点知识
|
1月前
|
存储 缓存 算法
Java数据类型与运算符深度解析
本文深入解析Java中容易混淆的基础知识,包括八大基本数据类型(如int、Integer)、自动装箱与拆箱机制,以及运算符(如&与&&)的使用区别。通过代码示例剖析内存布局、取值范围及常见陷阱,帮助开发者写出更高效、健壮的代码,并附有面试高频问题解析,夯实基础。
|
1月前
|
算法 Java 测试技术
零基础学 Java: 从语法入门到企业级项目实战的详细学习路线解析
本文为零基础学习者提供完整的Java学习路线,涵盖语法基础、面向对象编程、数据结构与算法、多线程、JVM原理、Spring框架、Spring Boot及项目实战,助你从入门到进阶,系统掌握Java编程技能,提升实战开发能力。
109 0
|
2月前
|
存储 安全 Java
从基础语法到实战应用的 Java 入门必备知识全解析
本文介绍了Java入门必备知识,涵盖开发环境搭建、基础语法、面向对象编程、集合框架、异常处理、多线程和IO流等内容,结合实例帮助新手快速掌握Java核心概念与应用技巧。
65 0
|
2月前
|
存储 人工智能 JavaScript
Java中的数据类型转换
本文介绍了 Java 中常见的数据类型转换方法,涵盖字符串与整型、长整型、浮点型、布尔型及日期类型的相互转换,并讲解了可能出现的异常和处理方式。
133 0
|
6月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。