Java开篇
一、跨平台机制+环境搭建
Java程序执行流程顺序
1.Java语言特点
*跨平台性 平台(系统)(JVM虚拟机不跨平台)
面对对象
简单性 (摒弃c++复杂的语法)
健壮性(鲁棒性) 垃圾回收 异常处理
多线程
大数据开发相关
JVM JAVA Virtual Machine 虚拟机 源代码文件.java 编译 字节码文件.class
JRE JAVA Runtime Environment 运行环境 运行别人写好的Java程序
JDK JAVA Development Kit 开发工具包(具有开发时需要用的工具)
Javac.exe 编译工具
Java.exe 执行工具 底层doc命令窗口中看到效果
JDK JRE JVM 依次包含
搭建环境就是电脑中安装JDK 官网www.oracle.com
Java安装文件夹内每个文件夹的内容
二、编译与执行+环境变量
内容:
- 如何去编写一段Java源代码
源代码------->一堆英文(按照某种规则来写)
以文件形式存储在电脑硬盘上
源代码 以后缀名.java结尾
文件打开里面的内容是按照规律写的英文
先写一个关键字class---->表示类的意思
类的后面起一个名字---->理论上随便写
命名规则和规约
规则:名字中可以含有如下信息:
字母(区分大小写 敏感 52个)
数字(0-9 可以用 不能用作开头)
符号(英文符号 _$)
中文(强烈不推荐—>当作不行)
规约:类名字 首字母大写TestOne 如果两个以上的单词 每个单词的首字母大写
起名字要见名知义 建议尽量使用英文单词
- 利用JDK包中提供的工具 代码的编译及执行
Hello world输出示例
class Demo{
public static void main(String[] args){
System.out.println("Hello world");
}
}
三、Java语言基本构成
基本数据类型
1.、 基本数据类型 8个(按照存储单位大小由小到大排列)
4整型
byte 字节型----->8个bit 敏感单元位
1byte==8bit 0 0000000 256种组合
用第一个bit位置记录符号 0正数 1负数
数值范围 -2的七次方~2的七次方 -128~127
short 2字节------>16bit 65526种 -32768~32767
int 4字节------->32bit
long 8字节-------->64bit
以上的整数类型依次乘以2
2、浮点型
float 32bit 4字节
double 64bit 8字节
1字符型 char 16bit 2字节 Unicode编码 -65535
//字符中数字和整数的数字冲突 为了以示区分 每一个字符的前后各加单引号
英文和符号和数字是一个字节 ASCII码
中文是两个字节
1布尔型 Boolean 1bit true false
2. 引用数据类型
数组[]
类class(抽象类abstract class)
接口interface
枚举enum
注解@interface
四、常量与变量
常量 代表程序在运行过程中,不能再次改变的值
作用
1.固定的值 代表计算过程中经常用到的值,便于程序计算
2.用来代表一个含义 游戏中WSAD控制移动或方向
什么样的值算是常量:
- 固定不变的值,算作常量
即所有基本类型的值 固定不变 是常量 - 特殊常量
“abc”—>String
String是一个引用数据类型,他的值很特殊,可简单视为常量 - 自己创建的空间,存储一个值,让他固定起来,不能改变
例 final int UP = 1;
变量 指程序执行过程中可以改变的
变量是一个内存空间(类似于一个小容器)
变量空间在创建(声明)的时候 必须指定数据类型 变量空间的名字
变量空间里面只能存储一个内容(值 引用)
变量空间内的内容可以改变
变量如何创建/声明
数据类型 变量名字; 例 int a; String b;
创建变量是 需要注意命名的问题
命名规则:字母(大小写敏感) 数字 符号(_$) 中文(不推荐)
命名规约:类名字 首字母大写 如果两个以上的单词 所有首字母大写
SuperPerson
变量名 首字母小写 如果两个以上的单词 之后的首字母大写
superPerson
遵循驼峰式命名规约
所有名字都需要见名知义 (为了增强程序的可读性)
注意:变量是一个空间 可以只创建空间 里面不存放内容
变量空间创建后是没有默认的内容 空的
空的变量空间不能拿来使用---->会出现编译错误
byte x;//声明一个变量空间 空间名字是x 空间内要求存储的类型是byte整数
x = 1;//将一个1赋值到x空间内进行存储
也可以直接 byte x = 1;
注释:
- 单行注释
//注释内容
- 多行注释
/* 注释内容 */
- 文档注释
/** *注释内容 *注释内容 */
源码编译执行 内存空间问题
五、类型转化
类型之间的转换问题
- 同种数据类型之间是可以直接进行赋值
int a = 1; int b =a;|| float x=3.14;float y = x; - 数据类型不同的空间 之间的赋值------>转换问题
同种大数据类型之间才能发生转换
基本类型--------基本类型之间 可以直接转换(自动or强制)
引用类型-------引用类型之间 可以直接转换(自动or强制----上转型 下转型)
基本类型--------引用类型之间 不可以直接转换(间接—包装类/封装类) - 保证大数据类型一致的前提下
基本类型----基本类型
小数据类型相同:都是整型、都是浮点
byte a =1; int b = a;//自动转化就可以
int a =1; byte b =(byte)a;//需要强制类型转换
float x = 3.4F; double y = x;//自动直接转化
double x =3.4; float y = (float)x;//强制转换
小数据类型不同:引用类型之间后续…
数据类型补充扩讲
多种数据类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
例:
public class Test {
public static void main(String[] args) {
int i = 1;
short s = 2;
byte b = 3;
int res = i + s + b;\
//在计算过程中,整数类型是int的范围最大,所以在计算的过程中,所以s和b都分别转成int类型,然后再进行相加运算,最后结果是int类型
System.out.println(res);
}
}
char类型的数据在与数字进行数学运算的时候,转化为相应的ASCLL码的值,然后再进行计算
当把任何基本类型的值和字符串进行连接运算时(+),基本类型的值将自动转化为字符串类型
例:
public class Test {
public static void main(String[] args) {
String str = "abc";
int i = 1;
String str0 = "" + 1 + 2 + 3;
System.out.println(str0);
}
}