DAY02__java概述__数据的类型和变量
一、java初识
1、概述
1991年,命名OAK,是SUN公司推出,1995开始以java名义推出
Java之父詹姆斯·高斯林
JavaSE,JavaEE,JavaME
二、java特性
面向对象,跨平台,自动垃圾回收,多线程(jvm四大特性)
java是准动态强类型解释性语言
动态语言:使用变量的时候不需要确定类型,数据的类型在第一次赋值的时候确定
静态语言:运行之前就需要确定数据的类型
java的准动态主要体现在反射机制
强类型语言:数据类型不会改变(除非强制类型转换)
弱类型语言:数据类型根据上下文环境做出改变
解释型语言:每次运行都要解释,所以运行速度比较慢,但是跨平台
编译型语言:编译好后就可以一直使用,所以运行速度快,但是跨平台差
三、注释
1、单行注释
// 单行注释
2、多行注释
/*
* 多行注释
*/
3、多行注释(文档注释)
/**
* 多行注释,可用javadoc来生成文档注释
*/
四、关键字
public calss one{
//程序的入口,是固定写法
public static void main(String[] args){
}
}
public :公共的
class:定义类的关键字,表示定义一个类
one:类名
static:静态资源
注意:一个java源文件中,可以有多个class定义,但是public class 只能有一个,并且 public class的类名 必须和文件名一致比如一个java文件中,有5个class定义,那么编译之后 就会生成5个class文件
五、数据
1、基本概念
程序:命令的集合
文件类型:文本文件,二进制文件,可执行文件
源文件就是文本文件
二进制文件是给电脑看的
用于编写文本的就是文本编辑器
把文本转换成二进制文件就是编译器
装载器,连接器,加载器等,把这些集成在一起的开发环境就是IDE集成环境
进程:程序执行后,会载入到内存中,划分对应的空间,是操作系统的概念
2、存储方式
内存:两端无线延伸的线
硬盘:螺旋线
光盘:同心圆
3、数据的单位
bit:比特,最小的单位,一个比特就是一个电子位,统称位
byte:字节 1byte=8bit
为了保存负数,取最高位来表示符号,0正数,1负数
六、数据类型
1、概述
数据类型:本质就是规定占用空间的大小,一般用字节表示
2、基本类型
基本数据类型
数值型
整型
byte 字节 8bit -128~127
short 短整型 16bit
int 整形 32bit
long 长整形 64bit
浮点型
float 单浮点 32bit
double 双浮点 64bit
字符型
char 字符 16bit
布尔型
boolean 布尔 8bit
引用数据类型
类,数组,接口
注意:java中不能表示2进制,但是可以可以表示8进制,10进制
8进制:0开头
10进制:非0开头
16进制:0x开头 A-F表示10到15
3、类型使用
整形
public calss DT_01_Int{
public static void main(String[] args){
int i_1 = 10;
//这里的10默认是int类型
System.out.print(10);
//等于是把int类型的值自动转换成long类型的值
long l_1 = 2687416546;
//long类型的值需要在尾部加L/l,推荐大写
long l_2 = 1464654123L;
byte b_1 = 125;
short s_1 = 315967;
}
}
浮点型
public class DT_02_Double{
public static void main(String[] args){
//float的值必须加F/f 建议加F
float f_1 = 2.2F;
float f_2 = (float)2.2;
double d_1 = 2.0;
}
}
字符型
public class DT_03_char{
public static void main(String[] args){
// 自动向上转型,小的可以向大的转
char c_1 = 'a';
int i_1 = c_1;
//高精度向低精度转换时如果高精度的值大于低精度的最大值,就会出现转换出错
}
}
七、数据类型转换
1、8中数据类型中除了boolean类型之外,其他的都可以相互转换
2、低精度到高精度是自动转换(隐式转换),高精度到低精度是强制转换(显示转换)
byte->short->int->long->float->double
char->
注意short不可以自动转char,因为short是32767,char到65535
byte也不可以自动转char,因为有负数
3、强制转换会把高位截取掉,可能会造成数据错误
4、多种数据类型混合运算中,结果的类型是参与运算的类型中最大的类型
八、常量、变量和自变量
常量:在程序生命运行周期,值不可以更改
字面量/直接量:没有明确表示空间存储,不能重复使用
变量:在程序生命周期,值可以改变,可以理解为有名字的变量空间
变量的声明:
数据类型 变量名;
数据类型划分内存空间大小,给空间取名字,然后赋值
变量定义:
数据类型 变量名 = 赋值;
作用域:
一个大括号{}就是一个作用域,一个变量的使用范围,不会超过包含他的大括号
变量分类:
成员变量
成员变量:类体中,没有用static修饰的变量,就是成员变量,与对象相关
静态成员变量:类体中使用static修饰的变量,就是静态变量,与类相关
局部变量:方法内部声明的变量,只能在方法中使用
注意:java中没有全局和函数的概念,因为全局变量安全性较差,所以java中引入了包机制
变量调用:
局部变量:在方法中直接使用变量名就可以使用,不赋值,不能使用,没有默认值
成员变量:对象名.成员变量名 有默认值,可以直接使用
静态变量:类名.静态变量名 调用本类的静态变量类名可以省略
一个大括号{}就是一个作用域,一个变量的使用范围,不会超过包含他的大括号
变量分类:
成员变量
成员变量:类体中,没有用static修饰的变量,就是成员变量,与对象相关
静态成员变量:类体中使用static修饰的变量,就是静态变量,与类相关
局部变量:方法内部声明的变量,只能在方法中使用
注意:java中没有全局和函数的概念,因为全局变量安全性较差,所以java中引入了包机制
变量调用:
局部变量:在方法中直接使用变量名就可以使用,不赋值,不能使用,没有默认值
成员变量:对象名.成员变量名 有默认值,可以直接使用
静态变量:类名.静态变量名 调用本类的静态变量类名可以省略