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