Java学习第一周 总结
概述
1991年,命名OAK,是SUN公司推出,1995开始以java名义推出
Java之父詹姆斯·高斯林
java分支 JavaSE,JavaEE,JavaME
JVM特性
跨平台,面向对象,多线程,自动垃圾回收机制
运行机制
开发者编写Java代码(.java文件),将其编译成字节码(.class文件),完成这之后JVM才能识别且运行它;JVM针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的JVM,那么这份Java编译后的代码就能够运行起来
注释
对内容解释或描述,不会被JVM解析 交接工作时别人能更快入手,注释能在遗忘提醒被注释内容是用来作什么的
//单行注释
/*
*多行注释
*/
/**
*该多行注释可以使用javadoc工具生成文档
*当鼠标移入类名时可以显示该注释的内容作为提示
*/
关键字和保留字
关键字: java中已经被使用的单词,public,class,void,static,int,byte等
保留字: java中还没有被使用的关键字,但是可能在后续新版本中被使用
关键字释义
//public: 公共的
//class: 定义类的关键字,表示定义一个类
//Hello: 被定义的类名
public class Hello{
//入口程序,固定的写法
//static:表示静态资源
}
一个java源文件中可以有多个class定义类,但是public class只能有一个,且public class的类名必须和文件名一致(一个java文件中有多少个class定义类,就会生成多少个.class文件)
入口方法
固定写法
public static void main(String[] args){
System.out.println("Hello Word!");
}
固定写法一般出错的地方就是main的拼写错误,其他单词错误会直接报错
易错点
- 入口方法中main的拼写错误
- 大小写错误,java中严格区分大小写
- 标点符号的适用,主要是java中英文模式的标点符号不容易看出来
- 未保存,文件左上角会显示一个*符号
- 命名错误 只能是大小写字母a-zA-Z,数字0-9,下划线_,美元符$,且不能以数字开头; 不能使用单独保留字和关键字
数据类型
数据类型概述: 规定了数据包类型和空间大小
基本数据类型 |
数值型 |
整型 byte 字节 -128~127 short 短整型 16bit int 整型 32bit long 长整型 64bit |
浮点型 float 单浮点 32bit double 双浮点 64bit |
字符型 char 字符型 16bit |
布尔型 boolean 布尔型 8bit |
引用数据类型 类,数组,接口 |
数据存储
本质 : 就是规定占用内存空间的大小,用位和字节表示
1 数据存储
数据要运算,必须先存储
2 存储方式
内存 : 两端无限延伸的线
硬盘 : 螺旋线
光盘 : 同心圆
3 存储单位
bit : 比特,一个比特就是一个电子位,统称位
byte : 字节 = 8bit
为了保存负数,最高位表示符号位,1位负,0为正
byte取值范围 : -128~127 负数存储补码(原码 取反 +1)
例 : -2 原码 1010 反码 1101 补码 1110\
4 进制
二进制
十进制
十六进制
八进制
程序 : 一堆,命令的集合
文件类型 : 文本文件,二进制文件,可执行文件
源文件就是文本文件,给人看的
二进制文件是给电脑看的 01011
用于编写文本文件的工具交文本编辑器
把文本文件转化为二进制文件的工具交编译器
装载器,链接器,加载器等;把这些功能集成到一起的开发环境,比如我们使用的Eclipse就是IDE集成环境
没有运行的可执行文件叫程序,保存在硬盘当中是静态概念
进程 : 程序执行之后会载入内存空间中,划分对应的空间是操作系统的概念
命名规则
强制规则 : 大小写字母,数字,下划线,美元符号,并且数字不能开头 不能使用关键字和保留字
非强制 : 建议望文知义 驼峰命名法 类名首字母大写 变量名和方法名首字母小写
类型使用
- 整型
//其中的iny类型定义一个32位的空间且命名为i_1,该空间赋值为10 int i_1 = 10; int i_2 = 017; int i_3 = 0x10; //控制台打印括号中的内容 System.out.println(i_1); System.out.println(i_2); System.out.println(i_3); //将int的值自动转换为long类型的值,int范围内 long l_1 = 214748364; //long类型的值需要在值的尾部加上L/l,推荐使用大写的L,避免字符混淆 long l_2 = 214945688518498L; byte b1 = 127; short s1 = 32767;
一般默认为int整型
-
浮点型
public class DT_Double{ public static void main(String[] args){ float f_1 = 2.2F; float f_2 = (float)2.2; double d_2 = 2.3; } }
float的值必须加F/f,不区分大小写;值的前边加上(float)则表示强制转化为float单浮点型; 一般默认类型为double双浮点型
-
字符型
public class DT_char{ public static void main(String[] args){ char c_1 = '张'; int i_1 = c_1; System.out.println(c_1); System.out.println(i_1); } }
char是字符型,用英文状态的单引号''表示,单引号中只能有一个字符
char占用两个字节 16位 范围是 0~65535char
short也是16位,但因为其需要负数所以范围少一半,范围是 -32768~32767
字符型和整型之间有一个对照表ASCII码 其中常用的 'a'97 'A'65 '0'48 记一下好找
字符型不是字符串型 -
布尔型
public class DT_Boolean{ public static void main(String[] args){ boolean flag = true; if(flag){ System.out.println("我们去看电影吧"); }else{ System.out.println("突然想起来我有事,先走了"); } } }
java中的布尔型只有true和false 占用1字节,全是0位false,0000 0001为true 一般用于判断操作 布尔型默认为false
转义符
转义符 : 把有意义的字符转化为无意义的字符,操作为在其前面加上 反斜杠\
char的默认值为\u0000 支持Unicode编码
类型转换
八种基本类型中,除了Boolean类型之外都可以相互转换
低精度到高精度转换为 自动转换(隐式转换) ; 高精度到低精度的转换为 强制转换(显式转换),可能导致数据出现错误
byte->short->int->long->float->double
char->
//强制转换(类型)值
char c1 = (char) s1;
//自动转换
int i1 = c1;
多种数据类型的混合运算中,结果的类型为参与运算的最大的类型
注:byte,short,char,int 任意一种或多种进行运算时结果都是int类型
变量
全局 : 在类之外创建,所有类都可以直接访问,不需要二次引用(二次引用 就是不需要使用 . 进行操作 xxx.xxxx)
Java中不允许在类之外创建变量,但是可以将一个类的变量设置为public static 修饰,其他类也是可以访问到该变量的,不过需要使用类名.变量名的方法引用
所以java中是没有全局变量和函数的
全局变量安全性较差,更容易造成命名冲突问题
所以java中引入了包机制,所以引用一个变量的时候必须使用包名和类名才能引用
变量声明
变量 : 在运行过程中,可以更改的数据 也可理解为有名字的内存空间
数据类型 变量名= 值;
数据类型划分内存空间大小,给空间取名字 赋值(把数据保存在空间中)
作用域:
一个大括号 {} 就是一个作用域,一个变量的适用范围不会超过包含它的这个大括号
不会超过向上碰到的第一个包含它的大括号,但是向下穿透
变量分类
局部变量 : 方法内部声明的变量,是局部变量,只能在方法中使用,且直接写变量名称
成员变量 : 类体中,没有使用static修饰的变量,就是成员变量,对象相关
静态变量 : 类体中使用static修饰的变量就是静态变量,类相关
变量调用
变量都不能先使用在声明
局部变量 : 在方法中,直接写变量名即可,并且局部变量 不赋值不能使用,没有默认值
静态变量 : 类名.静态变量名调用,当前类中调用当前类的静态变量类名可省略,有默认值
成员变量 : 对象.成员变量名,有默认值
局部变量可以和静态/成员变量同名,局部变量优先级高
可以使用 类名.静态变量名 来区分同名的静态变量和局部变量
public class Var{
//成员变量
int a = 1;
//静态变量
static int b = 2;
public static void main(String[] args){
//不能先使用在声明
//System.out.println(i);
//局部变量
int i = 20;
System.out.println(i);
int x = 0;
System.out.println(x);
//静态变量的调用
System.out.println(Var_02.b);
System.out.println(b);
int b = 1;
//使用的是局部变量b
System.out.println(b);
//使用的是静态变量b
System.out.println(Var_02.b);
//同时创建多个变量并赋值
int i1=1,i2=2,i3=3;
//只有i6有值
int i4,i5,i6=1;
}
}