- java安装
- JAVA_HOME:存放jdk的根目录,方便系统中jdk版本的控制;
- path:系统中可执行文件的路径;
- jdk:开发工具包;
- jre:运行环境
- jvm;
- 命令行窗口的环境变量是打开窗口时的内容,如果改变了环境变量要重新开启命令行窗口;
- java编译
- java的跨平台性:一次编译到处运行,将.java文件编译成.class文件,在不同平台上运行java程序;
- 为什么我们在不同平台上安装不同的JVM(jre)? 不同jvm将.class文件解析成不同系统的指令和系统进行交互;
- java文件(源文件)---编译-->class文件(字节码文件)---jvm解析-->windows执行;
- javac 文件名 (java程序编译器)---->将.java文件编译成.class文件
- 数据类型
整数类型 byte(1个字节) short(2个字节) int(4个字节) long (8个字节);- bit 字节=8bit ;
- 使用不同的数据类型记录不同的数据范围,节省内存空间;
- java是一种强数据类型语言(数据类型直接的界限是非常明确的);
- 在基本数据类型中,取值范围大的类型可以存储(记录,赋值)范围小的类型;
- 类型转换:隐式转换;(没有[不需要]在代码中体现), 在基本数据类型中,取值范围小的类型可以直接转换成取值范围大的类型;
- 在基本数据类型中,强制类型转换就是一刀切(只保留有效位[二进制];
- 整数类型运算结果一定是整数类型,默认是int;
- 在基本数据类型中,取值范围小的类型可以直接转换成取值范围大的类型;
- 所有字符的本质还是数字
- 字符和数字之间可以相互转换:system.out.println((int)c1);//强制转换
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
- 优先级 整数--->小数
- 强制转换(内存可能会溢出的情况)
int i =128; byte b =(byte)i; //-------结果-------- //b=-128
- 格式(类型)变量名
char c='a'; int b= c+1; System.out.println(b); System.out.println((char)b); //-------结果--------- //98 //b
- 计算时内存溢出
int a=10_0000_0000; int years=20; int total=a*years; long total1=a*years; long total3=a*((long)years); long total2=((long)a)*years; System.out.println(total); System.out.println(total1); System.out.println(total3); System.out.println(total2);
-------结果----------------
//一刀切
-1474836480
-1474836480
20000000000
20000000000
a和year都默认为int型,但是计算结果超出范围,在计算时就已经溢出,所以转化为负数,然后转化为long也是负数。在计算时转换
就不会出现溢出情况。
- 变量
类变量(static)(在类里)
- 可以直接输出
- 前面要加static 类型 变量名 = 值
- 变量是在程序运行阶段,可以发生变化的变量(重新赋值)的量,
- 注意:java大小写是敏感的;
- 作用:在程序中用来记录数量的名字;
- 标识符命名规范(变量名,常量,文件名;方法,包,参数名,HTML自定义属性)
- 标识符只能包含字母,数字,_ $
- 标识符首字母不能是数字;
- 标识符不能是关键字(java语言中已经内定的一些单词在程序中有特殊的含义,开发者不能随意使用;
- 命名规范
- 类名首字母大写;
- 变量名首字母一般小写,使用驼峰命名法;
- 常量所有的字母都要大写,使用_分割单词;
- 包名全部小写,尽量使用一个单词;
- 所有标识符尽量做到见名知意;当名称过长时可以使用单词的缩写,如果不能做到见名知意就不要缩写;
-
基本数据类型
- Java是一种强类型数据语言;
-
声明变量: 类型 变量名
- 变量名称在同一作用域下不可重复;
- 声明变量只能存储声明类型的数据;
- 整数类型(默认值是0)
- Byte 1个字节 7
- Short 2个字节 15
- Int 4个字节 31
- Long 8个字节 63
- 浮点型 (默认值是0.0)(不能精确的表示一个数值,不能用于表示金额,价格,税率等和金钱有关的内容 推荐使用BigDecimal)符号位 指数位 小数位
- Float 4个字节 单精度浮点型
- Float比int范围大
- double 8个字节 双精度浮点型 (默认类型,只要写的所有小数都默认是double)
- 布尔型 (默认值是false)
- 判断类型 false/true
- 不能和其他任何类型进行转换
- 4个字节【作业】
- 字符型
- Char:用来表示一个字符(默认值’\u0000’)2个字节
- Java使用unicode编码,用2个字节表示1个字符,我们一般使用uft-8编码字符集;
- unicode编码可以使用16进制的数值来表示;
- 可以直接使用数值表示;
- char范围 \u0000---\uFFFF 0-65535
- char类型和整数类型可以相互转换;
整数类型可以直接赋值范围内的整数
- 类型转换
- 隐式转换 intNum=byteNum;
- 强制转换 变量1 =(数据类型)变量2
- 转义符:\
- c='\'';
- c='\n';//换行
- c='\r';//回车符
- c='\t';//制表符
- c='\\';//表示\,第一个\是转义符,第二个是符号;
- 实例变量
实例对象:从属于对象,(在类里)
- 新建的对象要和类名相同
- 不进行初始化,输出的值为这个类型的默认值,0,0.0,false 除了基本类型其他都是null。
- 不能直接输出,要建立新的对象。
- 局部变量
局部变量:必须声明和初始化值,且声明完可以直接调用(在main主方法里)
- 常量
- 在程序运行阶段不会发生变化的量
- 前面要加final;
- 一般变量名用大写;
- static是修饰符,在final前后都可以。
- 变量命名规范
- 类成员变量采用首字母小写和驼峰原则;
- 局部变量采用首字母小写和驼峰原则;
- 类名采用首字母大写和驼峰原则;eg:GoodMan
- 方法名采用首字母小写和驼峰原则。
- 比较运算符
- 预留解决问题