Chapter03 Java变量
Chapter03 变量
3.1 为什么需要变量
3.1.1 一个程序就是一个世界
3.1.2 变量是程序的基本组成单位
3.1.3 简单原理图
3.2 变(变化)量(值)的介绍
3.2.1 概念
- 变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。
3.2.2变量使用的基本步骤
- 声明变量 int a; 2) 赋值 a = 60; //应该这么说: 把 60 赋给 a 使用 System.out.println(a);
- 也可以一步到位[int a = 60; 通常我们是一步完成]
3.3 变量快速入门
- 变量使用入门案例 看演示并对代码进行说明:演示记录人的信息的代码
public class Var02 {
public static void main(String[] args) {
//记录一个人的信息
int age = 20;
double score = 89.5;
char gender = '男';
String name = "刘";
//输出信息
System.out.println(name);
System.out.println(gender);
System.out.println(age);
System.out.println("成绩:" + score);
}
}
3.4 变量使用注意事项
public class VarDetail {
public static void main(String[] args) {
//变量必须先声明,后使用
int a = 10;
System.out.println(a);//10
//该区域的数据值可以在同一类型范围内不断变化的
a = 26;
System.out.println(a);//26
//变量在同一个作用域内不能重名
//int a = 77;//错误
//java的整型常量(具体值)默认为int型,声明long型常量须后加“L"或“l”
int n1 = 1;//4个字节
//int n2 = 1l;//错误
long n3 = 1l;
}
}
class Dog{
public static void main(String[] args) {
int a = 666;//对
}
}
3.5 程序中 + 号的使用
3.6 数据类型
- java 数据类型分为两大类基本数据类型, 引用类型
- 基本数据类型有 8 种数值型 [byte , short , int , long , float ,double] char , boolean]
- 引用类型 [类,接口, 数组]
3.7 整数类型
3.7.1基本介绍
Java 的整数类型就是用于存放整数值的,比如 12 , 30, 3456 等等
3.7.2案例演示
byte n1 = 10;
short n2 = 10;
int n3 = 10;//4 个字节
long n4 = 10; //8 个字节
3.7.3整型的类型
3.7.4整型的使用细节 IntDetail.java
public class IntDetail {
//编写一个 main 方法
public static void main(String[] args) {
//java的整型常量(具体值)默认为int型,声明long型常量须后加“L"或“l”
int n1 = 1;//4个字节
//int n2 = 1l;//错误
long n3 = 1l;
}
}
3.8 浮点类型
3.8.1 基本介绍
- Java 的浮点类型可以表示一个小数,比如 123.4 ,7.8 ,0.12 等等
3.8.2 案例演示
3.8.3 浮点型的分类
3.8.4 说明一下
- 关于浮点数在机器中存放形式的简单说明, 浮点数=符号位+指数位+尾数位
- 尾数部分可能丢失,造成精度损失(小数都是近似值)
3.8.5 浮点型使用细节 FloatDetail.java
public class FloatDetail {
public static void main(String[] args) {
//JAVA的浮点型常量(具体值)默认为double型,声明float常量,须后加“f”或“F”
//float num1 = 1.1;//错误
float num2 = 1.1F;//对
double num3 = 1.1;//对
double num4 = 1.1f;//对
//通常情况下,应该使用double型,因为它比float型更精确
double num5 = 3.1415926535;
float num6 = 3.1415926535f;
System.out.println(num5);
System.out.println(num6);
//浮点数使用陷阱:2.7 和 8.1/3
double num7 = 2.7;
double num8 = 8.1/3;
System.out.println(num7);
System.out.println(num8);//无限接近2.7,而不是2.7
//得到一个重要的使用点:当我们对运算结果是小数的进行相等判断是,要小心
//应该是以两个数的差值的绝对值,在某个精度范围类判断
if( num7 == num8){
System.out.println("相等");
}
}
}
3.9 字符类型(char)
3.9.1 基本介绍
字符类型可以表示单个字符,字符类型是 char,char 是两个字节(可以存放汉字),多个字符我们用字符串 String(我们后面详细讲解 String)
3.9.2 案例演示 Char01.java
char c1 = 'a';
char c2 = '\t';
char c3 = '韩';
char c4 = 97;
3.9.3 字符类型使用细节
public class CharDetail {
public static void main(String[] args) {
//在java中,char的本质是一个整数,在输出时,是unicode码对应的字符
//要输出对应的数字,可以(int)字符
char c1 = 97;
System.out.println(c1);//a
char c2 = 'a';//输出a对那个的数字
System.out.println((int)c2);
char c3 = '刘';
System.out.println((int)c3);
//char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
System.out.println('a' + 10);//107
//课堂测试
char c5 = 'b'+ 1;
System.out.println((int)c5);//99
System.out.println(c5);//c,99对应的字符,编码表是c
}
}
3.10 布尔类型:Boolean
public class Boolean01 {
public static void main(String[] args) {
//演示判断成绩是否通过的案例
//定义一个布尔变量
boolean isPass = true;
if(isPass == true) {
System.out.println("考试通过,恭喜");
}else{
System.out.println("考试没通过,下次努力");
}
}
}
3.11基本数据类型
3.11.1 自动类型转换
3.11.2 自动类型转换注意和细节
//自动类型转换细节
public class AutoConvertDetail {
public static void main(String[] args) {
// 细节一:有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型
// 然后在进行计算
int n1 = 10;
// float d1 = n1 + 1.1;//×,n1 + 1.1 => 结果类型是double
// float d1 = n1 + 1.1f;//√,n1 + 1.1 =>结果类型是float
double d1= n1 + 1.1;//√,n1 + 1.1 => 结果类型是double
// 细节二:当我们把精度(容量)大的数据据类型赋值给精度(容量)小的数据类型时,就会报错,繁殖会进行自动类型转换
// int n2 = 1.1//×,double => int
// 细节三:(byte , short)和char之间不会相互自动转换
// 当把具体数赋值给byte时,(1)先判断这个数是否在byte这个范围内,如果是,就可以用
byte b1 = 10;//√ -128~127
int n2 = 1 ; //n2 此时时int类型
// byte b2 = b2;//×,原因:如果是变量赋值,判断赋值
// 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;//× , b2 + b3 =>int
// 细节五:boolean 不参与转换
boolean pass = true;
// int num10 = pass;//× , boolean 不参与类型的自动转换
// 细节六:自动提升原则:表达式结果的类型自动提升为,操作数中最大的类型
byte b4 = 1 ;
short s3 = 100;
int num11 = 1;
double num14 = 1.1;
double num15 = b4 + s3 + num11 +num14;
}
}
3.11.3 强制类型转换
- 介绍:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成精度降低或溢出,格外要注意
public class ForceConvert {
public static void main(String[] args) {
//演示强制类型转换
int n1 = (int)1.9;
System.out.println("n1=" + n1);//1,造成精度损失
int n2 = 2000;
byte b1 = (byte)n2;
System.out.println("b1=" + b1);//造成数据溢出
}
}
3.11.4 强制类型转换细节说明
public class ForceConvertDetail {
public static void main(String[] args) {
// 演示强制类型转换
// 强制符号只针对与最近的操作数有效,往往会使用小括号提升优先级
// int x = (int)10*3.5+6*1.5;//编译错误,结果类型是double,编译不过去
int y = (int)(10*3.5+6*1.5);//对
System.out.println(y);//44
char c1 = 100;//ok
int m = 100;//ok
// char c2 = m;//
char c3 = (char)m;//ok
System.out.println(c3);//100对应的字符,d字符
}
}
3.11.5 基本数据类型转换-练习题
3.12 基本数据类型和 String 类型的转换
3.12.1 介绍和使用
public class StringToBasic {
public static void main(String[] args) {
// 基本数据类型-->String
int n1 = 2;
float f1 = 1.1F;
double d1 = 4.5;
boolean b1 = true;
String s1 = n1 + "";
String s2 = f1 + "";
String s3 = d1 + "";
String s4 = b1 + "";
System.out.println(s1 + " " + s2 + " " + s3 + " " + s4);
// String-->对应的基本数据类型
String s5 = "123";
// 会在讲对象和方法的时候详细讲解
// 解读:使用 基本数据类型对应的包装类的相应方法,得到基本数据类型
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5);
float num3 = Float.parseFloat(s5);
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5);
boolean b = Boolean.parseBoolean("true");
short num6 = Short.parseShort(s5);
System.out.println(num1);//123
System.out.println(num2);//123.0
System.out.println(num3);//123.0
System.out.println(num4);//123
System.out.println(num5);//123
System.out.println(num6);//123
System.out.println(b);//true
}
}
3.12.2 注意事项
- 在将 String 类型转成 基本数据类型时,比如我们可以把 "123" , 转成一 个整数,但是不能把 "hello"
- 如果格式不正确,就会抛出异常,程序就会终止,这个问题在异常处理章节中,会处理
public class StringToBasicDetail {
public static void main(String[] args) {
String str = "hello";
// 转成int
int n1 = Integer.parseInt(str);
System.out.println(n1);//异常
}
}
===============================================
Exception in thread "main" java.lang.NumberFormatException: For input string: "hello"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at StringToBasicDetail.main(StringToBasicDetail.java:6)
3.13 本章作业
public class Homework01 {
public static void main(String[] args) {
int n1 = 13;
int n2 = 17;
int n3 = n1 + n2;
System.out.println("n3=" + n3);//30
int n4 = 38;
int n5 = n4 - n3;
System.out.println("n5=" + n5);//8
}
}
=============================================
public class Homework02 {
public static void main(String[] args) {
char c1 = '\n';
char c2 = '\t';
char c3 = '\r';
char c4 = '\\';
char c5 = '1';
char c6 = '2';
char c7 = '3';
System.out.println("c1=" + c1);//换行
System.out.println("c2=" + c2);//制表位
System.out.println("c3=" + c3);//回车
System.out.println("c4=" + c4);//输出\
System.out.println("c5=" + c5);//1
System.out.println("c6=" + c6);//2
System.out.println("c7=" + c7);//3
}
}
=============================================
public class Homework03 {
public static void main(String[] args) {
String str1 = "完美世界";
String str2 = "死亡笔记";
System.out.println(str1 + str2);//完美世界死亡笔记
char c1 = '男';
char c2 = '女';
System.out.println(c1 + c2 );//52906
int n1 = 50;
int n2 = 45;
System.out.println(n1 + n2);//95
}
}
===============================================
public class Homework04 {
public static void main(String[] args) {
String name = "张三";
int age = 20;
int grade = 85;
char sexual = '男';
String hobby = "打篮球";
System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n" +
name + "\t" + age + "\t " + grade + " \t" + sexual + " \t" + hobby);
// 输出结果:姓名 年龄 成绩 性别 爱好
// 张三 20 85 男 打篮球
}
}
Chapter03 Java变量的更多相关文章
- 菜鸟笔记:java变量命名及峰驼式命名法
如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名! 需要注意,给酒店房间起名字时可以是数字,如"802",也可以是有趣的名字,如" ...
- 慕课网-安卓工程师初养成-2-5 如何命名Java变量
来源:http://www.imooc.com/code/1221 如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名! 需要注意,给酒店房间起名字时可以是数字 ...
- 【细说Java】Java变量初始化顺序
Java的变量初始化顺序,对这里一直似懂非懂,面试的时候也经常被问到,但答的一直不好,现在整理记录一下,以后忘记了可以来看看. 程序分为两个部分,第一个部分不考虑继承,第二个部分考虑继承: (1)不考 ...
- 在JS中调用JAVA变量
在JS中调用JAVA变量可以,方法是:var JS变量名 = “<%=JAVA变量名 %>”<%中间写java代码,跟在JSP中一样%>在JAVA中 ,无法调用JS变量
- Java变量参数
Java1.5添加新功能:可变参数:它适用于参数不确定性的数量,判断形势的类型.java变量参数数组操作. 特点: 1.今天的参数列表只能持续. 2.省略号(...)位于变量类型和变量名之间,前后有无 ...
- 简述Java变量和强制转换类型
简述Java变量和强制转换类型 java变量 1. java变量 变量:顾名思义,就是在java执行程序过程中可以发生改变的量,就好比方程式中的未知数X一样. 变量的内存分配过程 int a ; // ...
- java变量和javascript变量之间的传递
java代码是运行在服务器上的,返回的值只是静态的存在于页面,而javascript是脚本语言,是运行在客户端的!它们是两种完全不同的语言,变量不能直接进行交换,但是通过一定的方式,变量可以传递. j ...
- 如何命名Java变量
如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理--变量名! 需要注意,给酒店房间起名字时可以是数字,如“802”,也可以是有趣的名字,如“牡丹”.“美国总统”.“水帘洞 ...
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
随机推荐
- debian老版本下载地址
https://cdimage.debian.org/cdimage/archive/
- C++ 子函数参数传递过程
编译环境:Visual Studio 2015 参数传递与汇编语言有很大关系.子函数传递参数主要方式有三种(这三种参数传递方式都可用用于x86汇编语言甚至其它汇编语言): 寄存器方式传递参数 存储器方 ...
- PriorityQueue的用法和底层实现原理
定义 PriorityQueue类在Java1.5中引入并作为 Java Collections Framework 的一部分.PriorityQueue是基于优先堆的一个无界队列,这个优先队列中的元 ...
- Callable接口及Futrue接口详解
Callable接口 有两种创建线程的方法-一种是通过创建Thread类,另一种是通过使用Runnable创建线程.但是,Runnable缺少的一项功能是,当线程终止时(即run()完成时),我们无法 ...
- Ajax不允许缓存方法
AJAX请求后台时会自动缓存,客户端发起请求首先请求缓存,第一次请求即由缓存再请求服务器,返回数据时同样先返回到缓存再展示再客户端.但是如果数据要求随时性呢,数据变化频率高呢?那么如何不让ajax设置 ...
- MySQL 索引、事务与存储引擎
MySQL 索引.事务与存储引擎 1.索引 2.事务 3.存储引擎 1.索引: 索引的概念 : 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址 ...
- 虫师Selenium2+Python_12、BDD框架之Lettuce入门
http://www.cnblogs.com/fnng/p/3415609.html P293--简介: TDD(Test-Drivern-Development)测试驱动开发 ATDD(Accept ...
- 帆软报表(finereport)图表操作细节
图表间之间的组件间隔:body-->属性-->布局-->组件间隔 决策报表背景水印:body-->属性-->水印 仪表盘指针/枢纽/背景颜色:样式-->系列 柱形图 ...
- Note -「矩阵树定理」学习笔记
大概--会很简洁吧 qwq. 矩阵树定理 对于无自环无向图 \(G=(V,E)\),令其度数矩阵 \(D\),邻接矩阵 \(A\),令该图的 \(\text{Kirchhoff}\) 矩阵 \ ...
- python的import语句
1.import作用 import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量.函数或者类,但实现的区别很大. C/C++中如果a.cpp include了b.h那 ...