IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 从零开始循序渐进学JAVA_韩顺平【第二章】 -> 正文阅读

[Java知识库]从零开始循序渐进学JAVA_韩顺平【第二章】

变量

变量介绍

为什么需要变量:

一个程序就是一个世界,我们可以用不同类型的变量来代表不同的对应的数据从而形成程序的世界。

变量是程序的基本组成单位

不论使用哪一种语言,变量都是程序的基本组成单位。

变量有三个要素(类型+名称+值

class Test{
	public static void main(String[] args){
	int a=1;//定义了一个变量,类型是int-整数 名称-a 值-1
	int b=3;//类型 int 名称-b 值-3
	b=89;//把89 赋给b
	System.out.println(a);
	System.out.println(b);
	}
}
//在计算机执行line5,先找到b的地址然后找到b的数值,用89替代这个数值

在这里插入图片描述

变量概念

变量相当于内存中一个数据存储空间的表示,可以把变量看作是一个房间的门牌号,

通过门牌号走到房间,而通过变量名可以访问到变量(值)。

变(变化)量(值)

变量的使用步骤

  • 声明变量: int a;

  • 赋值:a=60; //(60赋值给a)

  • 输出:System.out.println(a);

    也可以int a = 60;

不同变量的定义

int age = 30;//整数
double score = 88.9;// 浮点数
char gender = '男';//单个字符
String name = "King";//字符串

变量使用的注意细节

  • 变量表示内存的一个存储区域{不同的变量,类型不同,占用的空间大小不同,比如: int 4个字节 double 8个字节}
  • 该区域有自己的名称[变量名]和类型[数据类型]
  • 变量必须先声明,后使用
  • 该区域的数据可以在同一类型范围内不断变化 (变量类型之间不能混用)
  • 变量在同一个作用域不能重名
  • 变量=变量名+值+数据类型

+号的使用

  • 当左右两边都是数值型时,则做加法运算

  • 运算顺序从左到右

  • 当左右两边有一方为字符串,则做拼接运算

    public static void main(String[] args){
    		System.out.println(100+98);
    		System.out.println("100"+98);
    		System.out.println(100+98+"hello");
    		System.out.println("hello"+100+98);
    >>198
    >>10098
    >>198hello
    >>hello10098
    

数据类型

每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)

在这里插入图片描述

java数据类型分为两大类:基本数据类型和引用类型

基本数据类型有八种:数值型{byte short int long float double}字符型{char}布尔型{boolean}

引用数据类型有四种:类 接口 数组

整数类型

在这里插入图片描述

  • java各个整数类型有固定的范围和字段长度,不受OS影响以保证java可移植性。

  • java的整型常量(具体值)默认为int类型 声明long类型需后面加”l“或者‘L’

  • int n1=1;//四个字节
    int n2=1L;//前者为int  后者为long 8个字节 
    long n3 = 1L;//将其转变为long 类型
    
  • java程序中常量声明为int类型,除非不足以表示大数,才使用long

  • bit:计算机中最小的存储单位,

  • byte:计算机中基本储存单元 1byte=8bit

在这里插入图片描述

浮点类型

  • 浮点数在机器中存放形式 ,浮点数=符号位+指数位+尾数位
  • 尾数部分可能丢失,造成精度损失(小数都是近似值)

在这里插入图片描述

浮点类型使用细节:

  • 与整数类型相似,JAVA浮点类型也有固定的范围和字段长度,不受OS影响

  • Java浮点型常量默认为double型,声明float常量必须后面加‘f‘或者’F’

  • float num1=1.1; //num 为float格式四个字节  1.1为默认double八个字节错误
    float num2=1.1F;//1.1类型是float
    
  • 浮点类型常量有两种表示方式:

    • 十进制:5.12 512.0f .521
    • 科学计数法: 5.12e2[5.12*10的2次方] 5.12E-2[5.12除以10的2次方]
  • 通常情况下使用double类型,因为他比float更精确

    double num9=2.12345647851;
    float num9=2.1234567851F;
    >>2.12345647851
    2.1234567
    
  • 当我们对运算结果是小数进行相等判断时要小心

double num11 = 2.7;
double num12 = 8.1/3;  //2.7
System.out.println(num11);
System.out.println(num12);//接近2.7  计算机理解为8.1/3.000000....
>>2.7
>>2.6999999999999997
    
 if(num11==num12){
		System.out.println("===");
	}
// 不会输出

应该是两个数的差值的绝对值,在某个精度范围内判断

	if(Math.abs(num11-num12)<0.000001){//其中引用了 math类的绝对值 abs
		System.out.println("===")
	}

JAVA API(应用程序编程接口)文档

Java 8 中文版 - 在线API中文手册 - 码工具 (matools.com)

java类的组织形式:

在这里插入图片描述

如何使用:

  • 包->类->方法
  • 直接索引所需方法

基本介绍

字符类型可以表示单个字符,字符类型时char,char是两个字节(存放汉字),多个字符我们用字符串String

public class char01{
	public static void main(String[] args){
		char c1='a';//字符的本质是存放的汉字
		char c2='\t';
		char c3='雨';
		char c4=97;//字符类型可以直接存放数字 当输出C4时会输出97表示的字符
>>
a

雨
a

字符细节

  • 字符常量是用单引号(’‘)括起来的单个字符:char c1=’a‘ 双音号是字符串
  • Java中还允许使用转义字符 “\” 将其后面的字符转变为特殊字符型常量。例如:char c3 =’\n‘;
  • 在java中,char的本质是一个整数,在输出时,时unicode对应的字符
  • 可以直接给char赋一个整数,输出时会对照对应的unicode字符输出
  • char类型可以进行运算,相当于一个整数,因为它有对应的unicode码
		//在java中,char的本质是一个整数,在输出时,时unicode对应的字符
		char c1=97;
		char c2='a';//输出 ’a'的数字
		System.out.println(c1);
		System.out.println((int)c2);//97 将a 转为int
		char c3='雨';
		char c4=38632;
		System.out.println((int)c3);//38632
		System.out.println(c4);//38632
//char类型可以进行运算,相当于一个整数,因为它有对应的unicode码

		System.out.println('a'+10);//先将a转为97再+10

		//课堂测试
		char c5='b'+1;
		System.out.println((int)c5); //输出99
		System.out.println(c5);//输出C  对应ASCII编码表

字符类型本质讨论

  • 字符型存储到计算机中,需要将字符对应的码值(整数)找出来,比如‘a‘

    存储:’a‘==》码值97=》二进制(1100001)=》存储

    读取:二进制(1100001)=》97=》’a‘=》显示

  • 字符和码值的对应关系是字符编码决定的

在这里插入图片描述

布尔类型

基本介绍

  • 布尔类型也叫bolean类型,只允许取值true和false,无null

  • 占一个自己

  • 适用于逻辑运算,一般用于程序流程控制

    • if条件语句
    • while循环控制语句
    • do-while循环控制语句
    • for循环控制语句

    不可以用0或者非0代替false和true 这点和C不同

    public class boolean01{
    	public static void main(String[] args){
    //判断成绩是否通过
    		//定义一个布尔变量
    		boolean isPass=false;
    		if(isPass==true){
    			System.out.println("考试通过,恭喜");
    		}else{
    			System.out.println("考试没通过,下次努力");
    
    		}
    
    	}
    }
    

数据类型转换

自动类型的转换

介绍

? 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个及时自动类型转换

数据类型按精度容量大小排序为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bh81rXJ3-1638200489871)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20211103233506900.png)]

int a = 'c';//字符转int 可以
double d = 80;//int转化为double 可以 

自动类型转换的注意和细节

  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换为容量大的那种数据类型,再进行计算

  • 当我们把精度(容量)大的数据类型赋值给精度(小)的数据类型时错误,反之就会自动类型转换

  • (byte,short)和char之间不自动转换

  • byte short char 他们三者可以计算,在计算时首先转换为int类型

  • boolean 不参与转换

  • 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

		int n1=10;// ok
		double d1 = n1+1.1;//后者自动转换为double  前者不能转换为flort  1.1 默认为double
		Float d1 = n1+1.1F;//此时1.1是flort,后者为flort
//当我们把精度(容量)大的数据类型赋值给精度(小)的数据类型时错误,反之就会自动类型转换
		int n2 = 1.1; //错误 double--》int 
		double n3 = 1; // 正确 int》double
//(byte,short)和char之间不自动转换
		//当把一个数赋值给byte 先判断该数是否是byte范围内,如果是就可以
		byte bi = 10; //byte范围 -128到127
		int n2 = 1;//int 四个字节
		byte b2 = n2; //错 int 转不了byte 如果是按变量赋值判断类型
		//
		//b
		byte b1 = 10;
		char c1 = b1;// 错误 byte 不能自动转为char



		//byte short char 他们三者可以计算,在计算时首先转换为int类型


		byte b2 = 1;
		byte b3 = 2;
		short s1 = 1;
		short s2 = b2 + s1; // 错 b2 + s1 =>int 
		int s2 = b2 + s1; // 对 b2 + s1 =>int 
		byte b4 = b2 + b3;//错 三者 参与计算就提升为int 即后者为int
		//- boolean 不参与转换
		boolean pass = true;
		int num100 = pass;//错误boolean 不参与自动转换
		//自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

		byte b4 = 1;
		short s3 = 100;
		int num200 = 1;
		double num300 = 1.1;
		double num500 = b4 + s3 + num200 + num300 //自动提升为double  所以用double接受


强制类型转换

介绍:

? 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度降低或者溢出,格外注意。

int i =(int)1.9;
System.out.println(i);//1 精度损失

int j = 2000;//127?
byte b1 =(byte)j;//数据溢出
System.out.println(b1);

强制类型转换细节说明

  1. 当进行数据的大小是从大–>小,就需要使用强制转换

  2. 墙砖符号只针对最近的操作有效,往往使用小括号提升优先级

    int x =(int)10*3.5+6*1.5;//编译错误 double->int 这里只是将10转为int
    
    int x =(int)(10*3.5+6*1.5);//(int)44.0>44 正确
    
    
  3. char类型可以保存int的常量值,但是不能保存int的变量值,需要强转。

    char c1 = 100; //ok
    int m = 100;//ok
    char c2 = m;//错误 m已经有int类型
    char c3 = (char)m;//ok
    System.out.println(c3);//输出100对应的字符 d
    
  4. byte和short,char类型在运算时,当作int类型处理

练习:

short s =12;
s = s-9;//错误 int 不能给short

byte b = 10;
b = b + 11;//错误同上
b = (byte)(b+11);//正确 使用强制转换 


char c = 'a';
int i = 16;
float d =.314F;
double result = c+i+d; //对


byte b = 16;
short s = 14;
short t = s+b;//错误 同上

基本数据类型和String的转换

介绍

在程序开发中,我们经常需要将数据类型转换为String类型。或者将Steing类型转换为基本数据类型。

基本类型转换为String类型:
语法:将基本类型的值+""即可

int n1 = 100;
float f1 = 1.1F;
boolean b1 = true;
String s1 = f1 + "";
String s2 = n1 + "";
String s3 = b1 + "";
System.out.println(s1 + "" + s2 + "" + s3 );

String类型转换为基本数据类型:

语法:通过基本类型的包装类调用parseXX方法即可

//解读 使用 基本数据类型对应的包装类的相应方法,得到基本数据类型
String s5 = '123.0';
int num1 = Integer.parseInt(s5);//123
double num2 = Double.parseDouble(s5);//123.0
float num3 = Float.parseFloat(s5);//123.0
long num4 = Long.parseLong(s5);//123
byte num5 = Byte.parsebyte(s5);//123
boolean b = Boolean.parseBoolean("true")//true
short num6 = Short.parseShort(s5);//123



//怎么把字符串转成字符char -> 含义时指 把字符串的第一个字符得到
System.outprintln(s5.charAt(0));//取‘1230’的第一个字符‘1’

注意事项:

  1. 在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们把‘123’,转成一个整数,但是不能把‘hello’转成一个整数。
  2. 如果格式不正确,就会抛出一场,程序就会终止,这个问题在异常处理章节中,会处理。
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:28:34  更:2021-11-30 15:30:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:01:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码