一、晨写
1、常用DOS指令
盘符号切换 盘符号: D:
Dir
cd
cd..
Cd\
Del 目录名称
Md
Copy con 文件名.文件后缀 编辑内容 ctl+z
Cls
Rd
Rd/s
Ipconfig
Ping IP地址
2、JDK Java软件运行包
Jre java运行环境
Jvm java虚拟机
JDk包含jre包含jvm
3、java通过不同系统jvm虚拟机即可实现跨平台,一处编译到处浪
二、回顾内容(重点)
1、前两周(一直使用dos 基本dos指令敲熟练)
2、概念(Java语言特点/Java发展历史(时间、人物)/Java三大平台版本)
3、Java环境配置(重点 Path环境变量)
第一种方式就不用了:
直接将Jdk安装目录中的bin路径 复制到系统环境变量中path里面即可
第二种方式:
在系统变量中新建变量名:JAVA_HOME
变量值:路径
Path:%JAVA_HOME%\bin;后面其他系统变量
4、为什么要配置path环境变量
想让Java文件在任何目录/任何地方都能进行编译Java文件和运行类
Javac 源文件.java
Java class文件的前缀(类名)
Java文件在哪个目录中——需要在指定的目录中进行编译和运行
三、今日内容
1、关键字————被Java语言赋予特定含义的单词
——注释,提高可阅读性和解决问题:单行和多行不会被编译,文档注释可编译——
/*
在高级记事本或开发工具eclipse/idea中,针对关键字有特殊颜色标识
class:Java中最基本的单元(定义一个类)
public:权限修饰符(公开的/公共的:访问权限足够大)
static:静态修饰符(面向对象中讲(共享/共用))
void:和Java中的方法定义有个关系
关键字还有很多:数据类型等等,关键字积累会越来越多,每一个单词都有一种特定含义
(关键字都是小写!)
*/
2、标识符(识记)
/*
标识符:是一种给类名、方法名、接口名、变量名、常量等,
起名字的一个字符序列——必须“见名知意”
组成规则:
1)26个英文字母
2)$符号
3)_下划线
4)数字字符
包(文件夹,都是字母小写)
(package):使用(面向对象中使用) 一般都是多级包(公司域名反写)com.baidu.www
单级包
com
hello.java
xxx.java
多级包(包和包(目录)之间使用.隔开)
com.qf.dev
com文件夹
qf文件夹
dev文件夹
xx.java
给类起名字
“大驼峰命名法”(阿里的规范)
如果当前类名/接口是一个单词:那么首字母大写,其他单词小写
class Hello{}
class Demo{}
如果当前类名/接口是多个单词:那么每个单词的首字母都大写,其余小写
class HelloWorld{}
class MakeNameDemo{}
数字不能作为开头
给方法和变量名起名字:
遵循“小驼峰命名法”
如果是一个单词:
字母全部小写
main():Jvm识别的main方法
自定义一个方法名:
check():检查的方法
Int age=20;//20岁
如果是多个单词:
第一个单词全部小写,从第二个单词开始首字母都是大写
checkUserName():
checkUserPassword():
Int studentAge =20;
给常量起名字:
单个单词:字母全部大写(很少用)
HELLO
实际开发中,使用的都是多个单词(使用居多):
每个单词字母都大写,中间用_下划线隔开
举例:
MIN_PRIORITY= 1; 最小优先级
NORM_PRIORITY = 5; 默认优先级
MAX_PRIORITY = 10; 最大优先级
后期学习多线程:多线程里面有一些常量(线程的优先级)
比如:第一阶段 小项目:网络聊天室
客户端——服务器端:发送数据时,服务器端如何得知是私聊/公聊模式呢?
自定义常量
public static final int PRIVATE_TALK=100;私聊
public static final int PUBLIC_TALK=100;私聊
反例:
class helloworld{
//可以这么写,但是不规范(在公司企业几乎都遵循阿里规范)
}
组成标识的注意事项
1)虽然可以有数字字符出现,但是数字不能开头
int 1productprice=100;
System.out.println(1productprice);
2)Java严格区分大小写,但是起名字一定要见名知意
3)Java中的关键字不能作为“标识符”
int public = 25 ;
System.out.println(public);
_(下划线)的出现(变量中定义/常量中有,类名/接口名中很少见,但$在内部类会有)
*/
——————————字节码文件要用反编译工具打开——————————
3、常量
/*
常量:
在程序的执行过程中,其值不发生改变的量!
意味常驻内存,字符串常量池
比如“再牛的肖邦也弹不出哥的悲伤”就是一个字符串
常量的分类:
两大类
1)字面值常量
1⃣️字符串常量
使用双引号括起来的内容———“hello”,"helloworld","我爱高圆圆"
字符串+任何数据=“新的字符串”,此时的+是字符串拼接符号
任何数据+“字符串”=“新的字符串”
2⃣️字符常量
使用单引号括起来的单个内容 ‘a’,‘b’,‘0’,‘A’
'ab':不行
2)自定义常量:(面向对象中讲解————final关键字)
*/
class ConstantDemo{
public static void main(String[] args){//程序入口
//字符串常量
System.out.println("hello,高圆圆");//必须是双引号
System.out.println("hello"+7);//字符串+任何数据=“新的字符串” “hello”+7=“hello7”
System.out.println("7");//"7"是字符串7,而非整数int 7
//任何数据+“字符串”=“新的字符串”:
System.out.println(98+"=5+5");//98=5+5
System.out.println("-------------------");
//字符常量:
//当字符不参与运算的时候:本身描述的就是字符本身的值,
//但是如果字符参与运算,字符就会寻找对应的ASCII码表对应的值进行运算
System.out.println('A');
System.out.println('B');
System.out.println('C');
System.out.println('0');
//System.out.println('abc');这个就不行,必须单个字符
System.out.println("-------------------");
//'A'----ASCII码表的值是65
//'a'----ASCII码表的值是97
//'0'----ASCII码表的值是48
System.out.println('A'+1);//此时的+是运算符号
System.out.println('a'+1);
System.out.println('0'+1);
}
}
3⃣️整数常量
100,66..
进制也属于常量的范畴
包括“进制”、二进制、八进制、十进制(整数默认)、十六进制
System.out.println(100);
System.out.println(9527);
System.out.println(19);
反例:
System.out.println(008);——————》这时报错,此时这个数据会认为是八进制,八进制是以“0”开头
进制?什么是进制?————数据进位的一种方式
二进制 逢2进1
八进制 逢8进1
十进制 整数默认就是十进制
十六进制 逢16进1
进制的由来:
早期,描述一个数据,使用机械关电元件开和关,使用0,1代表数据
当数据越来越大的时候,使用0,1代表数据不能满足需求,使用8个这样的符号 bit(比特)代表整个数据
从而组成二进制数据,
以0b开头
八进制:在二进制的基础上,从右边到左边每三个比特位组成一组数据,左边不够的补0
最终计算出每个位上的十进制——从左到右讲数据排列起来——形成“”八进制数据
,
有0,1,2,3,4..7组成,以0开头表示
十进制
十六进制:在二进制基础上,从右到左每四个比特位一组,左边不够的补0,计算出每组中的十进制数据
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,以“0x”开头表示
进制越大,表现形式越短!
十进制转换成任意进制——除基取余
————————————————————————————
二进制和十进制之间的快速转化法——8421码(BCD码的一种)
每一个二进制上的比特位都是1,他们都对应一个十进制的数据值
当将二进制转十进制————》将它比特位上师1点数据对应的十进制数据加起来————〉得出结果
————————————————————————
数据的有符号位的数据表示法:
WHY——运算符(位运算符)
计算机底层对数据的计算——使用“补码”进行计算的!
一个正整数7 :有两个部分组成:最高符号位和数值位组成
原码————》反码—————〉 补码
再用补码进行计算,得到反码,得到原码(看到的数据)
正整数,原码,反码,补码都相同
+7:最高符号位如果是0,就是正数
-7:最高符号位如果是1,就是负数
+7:原码
最高符号位 数值位
0 0000111
反码
0 0000111
补码
0 0000111
-7,负数:知道了原码——反码:在原码的基础上,符号位不变,数值位按位取反(1变0 ,0变1)
补码:在反码的基础上,末尾+1
最高符号位 数值位
1 0000111
反码
1 1111000
补码
1 1111001
题目:通过补码计算原码
4⃣️小数常量
1.34 12.56
System.out.println(1.3415926-12.556); 减法/除法,小数计算(可能无限接近某个数字,因为计算机伪计算!),Jdk后期提供了一个bigdecimal类可以进行精确计算
5⃣️布尔常量
True/false(有颜色,其实也算关键字)
System.out.println(true);
System.out.println(false);
6⃣️空常量 null——应用引用数据类型的默认值就是null,特殊的引用string
Java数据类型——基本类型/引用类型
String s = null ; //后期引用类型中说
String s2 = "" ; //有内容,不过是空串
System.out.println(s) ;
System.out.println("s2:"+s2+"---") ;//"s2:"
4、变量(重点)
1)定义:在程序的执行过程中,其值发生改变的量称为变量
2)变量三要素
1)声明限定(数据类型)
2)给当前变量起一个名字(按照标识符的规则,遵循“小驼峰命名法”:见名知意)
3)初始化值:如果变量使用之前都没有赋值,就“报错了”
3)格式
数据类型 变量名=初始化值;
4)Java数据类型(重点)两大类
1⃣️基本数据类型(四大类型,8种)
整数类型:默认int类型
byte字节类型 占用的字节数是1个字节 (范围:-128~127)记住
short短整类型2个字节
Int 默认类型 4个字节
long长整型8个字节
实际开发中:正数使用最多int(以后没有明确类型,都是按int)
其次long(以后用做定义时间——记录当前系统时间毫秒)
浮点类型:默认double类型
float单精度类型占4个字节
double双精度类型占8个字节
实际开发中使用最多的就是double(举例:商品价格/商城价格)
字符类型
char占两个字节数
char ch=‘A'
布尔类型不参与运算(只是提供判断)
boolean (true/false)
boolean flag=true
2⃣️引用数据类型:类,数组,接口(后期研究)
超市买苹果 得用钱买,用你好买不到,所以首先要声明限定(数据类型)
7元
5元
Int appleprice=7;
applePrice=5;