回顾:
1.java开发环境:
1)java编译运行过程:
1.1)编译期:.java源文件,经过编译,生成.class字节码文件
1.2)运行期:JVM加载.class并运行.class
跨平台、一次编程到处使用
2)JVM:java虚拟机
加载.class并运行.class
JRE:java运行环境
JRE=JVM+java系统类库(小零件)
JDK:java开发工具包
JDK=JRE+编译、运行等命令工具
2.eclipse:
IBM、开源的、免费的
新建项目、新建包、新建类 System.out.println("HelloWorld");
笔记:
1.变量:存数的,代词,指代的就是它所存的那个数
1)声明:
int a; //声明一个整型的变量,名为a
int b,c,d; //声明三个整型的变量,名为b,c,d
2)初始化:第一次赋值
int a = 250; //声明整型变量a并赋值为250
int a; //声明整型变量a
a = 250; //给变量a赋值为250
a = 360; //修改变量a的值为360
3)使用:
3.1)对变量的操作就是对它所存的那个数的操作
int a = 5;
int b = a+10; //取出a的值5,加10后,再赋值给变量b
System.out.println(b); //输出变量b的值15
System.out.println("b"); //输出b,双引号中的原样输出
a = a+10; //取出a的值5,加10后,再赋值给变量a
//在a本身基础之上增10
3.2)变量的使用必须与数据类型匹配
int a = 3.14; //编译错误,数据类型不匹配
3.3)变量在用之前必须声明并初始化
System.out.println(m); //编译错误,m未声明
int m;
System.out.println(m); //编译错误,m未初始化
4)命名:
4.1)只能包含字母、数字、_和$符,并且不能以数字开头
4.2)严格区分大小写
4.3)不能使用关键字
4.4)可以中文命名,但不建议
建议"英文的见名知意"、"驼峰命名法"
2.基本数据类型:
1)int:整型,4个字节,-21个多亿到21个多亿
1.1)整数直接量默认为int型,但不能超出范围,超范围则编译错误
1.2)两个整数相除,结果还是整数,小数位无条件舍弃
1.3)整数运算时超出范围则发生溢出,溢出不是错误,但是是需要避免的
2)long:长整型,8个字节,很大很大很大
2.1)长整型直接量需在数字后加L或l
2.2)运算时若有可能溢出,建议在第1个数字后加L
2.3)System.currentTimeMillis()用于获取自
1970.1.1零时到此时此刻的毫秒数
3)double:浮点型,8个字节,很大很大很大
3.1)浮点数直接量默认为double型,表示float需在数字后加f或F
3.2)double和float数据在运算时,有可能会出现舍入误差
4)boolean:布尔型,1个字节
4.1)只能赋值为true和false
5)char:字符型,2个字节
5.1)采用Unicode字符集编码,一个字符对应一个码,
表现的形式的字符char,但实质上是码int
(ASCII码: 'a'--97 'A'--65 '0'--48)
5.2)字符直接量必须放在单引号中,只能有一个
5.3)特殊符号需通过\来转义
3.基本数据类型间的转换:
基本数据类型从小到大依次为:
byte,short,int,long,float,double
char,
1)两种方式:
1.1)自动类型转换:小类型到大类型
1.2)强制类型转换:大类型到小类型
(要转换成为的数据类型)变量
强转有可能溢出或丢失精度
2)两点规则:
2.1)整数直接量可以直接赋值给byte,short,char,但不能超出范围
2.2)byte,short,char型数据参与运算时,先一律转换为int再运算
4.Scanner接收输入:
1)在package下:
import java.util.Scanner;
2)在main中:
Scanner scan = new Scanner(System.in);
3)在第2步之下:
System.out.println("请输入年龄:");
int age = scan.nextInt();
System.out.println("请输入价格:");
double price = scan.nextDouble();
练习:--------day03包中
1)创建类AgeRange,要求:
接收用户输入的年龄age,并输出
2)创建类LeapYear,要求:
接收用户输入的年份year,并输出
3)创建类Cashier,要求:
完成课后作业第9题
4)完成课后作业
5)练习今天的小代码:--------------至少1、2次
5.1)变量一段
5.2)int、long、double一段
5.3)boolean、char一段
5.4)基本数据类型转换一段
当日事当日毕
给变量赋值:
1)赋一个固定的值:
int a = 5;
2)接收用户输入的值:-------------Scanner
int a = ?;
3)系统随机的值:-----------------周五讲
int a = ?;
byte b1 = 5;
byte b2 = 6;
byte b3 = (byte)(b1+b2);
byte,short,int,long,float,double,char
890-----88折------783
char ch = 'A'; //0到65535之间
System.out.println(ch); //A
char c1 = '\\';
0--------------0
'0'------------48
男---------男对应的码
字符char 码int
敌--------------1234
军--------------2234
来--------------3234
袭--------------4234
1235 8965 7458 2584
你 撤 退 吧
DataTypeDemo
精确运算场合
double a=3.0,b=2.9;
System.out.println(a-b); //0.1000000000000000009
//0.1
double a=6.0,b=4.9;
System.out.println(a-b); //1.0999999999999999996
//1.1
十进制:
1/2---------------0.5
1/4---------------0.25(精确表示)
1/3---------------0.3333333333333333333...
2/3---------------0.6666666666666666666...(非精确表示)
二进制:
1/10
1970.1.1零时
31536000000----------long
20亿(int)
long a = 1000000000*2*10L;
System.out.println(a); //200亿(long)
溢出了
long b = 1000000000*3*10L;
System.out.println(b); //不是300亿
30亿(long)
long c = 1000000000L*3*10;
System.out.println(c); //300亿(long)
9223372036854775807
10000000000000000000
直接量超范围为编译错误
运算时超范围为溢出
int a = 10000000000; //编译错误
int a = 1000000000*10; //溢出
int balance = 2147483647;
balance = balance+1;--------------(-2147483648)
1G=1024*1024*1024字节-----------1073741824字节
1G=1024M(兆)
1M=1024KB(千字节)
1KB=1024B(字节)
1B=8Bit(位)
够用就行
java设计了很多种类型,每种类型中装的数据是不同的
为何不设计一种类型,这种类型什么数据都能装
适应不同人的不同的需求
别墅
四居室
三居室
两居室
一居室
开间
地下室
VarDemo,包含main,把注释删掉
int score,myScore,myJavaScore; //驼峰命名法
int Score,MyScore,MyJavaScore; //帕斯卡命名法
int a; //不直观
int 年龄; //直观但不专业
int nianLing; //既不直观也不专业
int age; //建议
twoBagMnq
erJuanBianYaQi-----------二卷变压器
int a=5,b=6;
int c = a+b;
System.out.println(c); //11
0-------------100
10------------110
100-----------200
1000----------1100
早期的计算机--------算数(数字)
现在的计算机--------算数(数字、文字、图片、音频、视频等)
www.taobao.com------------一个数据
淘宝首页------------------一堆数据
手机壳--------------------一个数据
一堆手机壳----------------一堆数据
详细页面------------------一堆数据
购物车--------------------一堆数据
结算----------------------一堆数据