java第一阶段(day01)
课堂笔记编写软件:typora。(是一个md文件,html开发的,用低版本,高版本收费)
一.了解java
1.1 java是什么
是一门高级的计算机编程语言。
计算机编程语言有如下三类:
1.1 机器语言 二进制 0 1 (给计算机看的)
1.2 汇编语言 一些命令 病毒
1.3 高级语言 java python c c++.....
1.2 能干啥
做开发:开发软件/开发程序。 未来称呼:软件开发工程师/java开发工程师
软件分类:
1.1 系统软件(一般c开发) 常见的系统:windows linux mac
1.2 应用软件 (Java语言都可以开发)
1. 基于PC端 typora chrome ... swing/gui javaFX
2. 基于移动端(又分为android/ios) 微信小程序 app 王者荣耀
3. 基于browser端(浏览器端): 淘宝
1.3 java发展
1995 推出java 也是在C++ 基础之上进行研发 C++--
2009 Oracle jdk1.1 ---- jdk1.17
这17个版本中最常用的版本:(大量使用的是jdk1.8 jdk1.11)
jdk1.6 jdk1.7 jdk1.8 jdk1.11 jdk1.17 (jdk1.11 jdk1.17都是LTS版本 (long term support,长时间提供支持服务的版本))
1.4 java开发平台版本
JAVASE: java标准版 java standard edition (蕴含着swing语言开发和gui编程以及javaFX) 可开发PC端 JAVAEE: java企业版 java enterprise edition 可开发移动端/browser端
JAVAME: java微型版 java mirco edition 用于嵌入式开发/移动端开发
1.5 术语解释
1. JDK JAVA开发工具包 java devlopment kit 只要想编写java代码 必须使用jdk
2. JRE java运行环境 java runtime environment 只要程序想要运行 必须在环境下进行执行
3. JVM java虚拟机 java virtual machine 程序的真正的运行 是在jvm中运行的----> 只认识class文件(字节码文件)
1.6 java语言优势
1. 跨平台(一次编译 到处运行) class文件
2. 语法简单 入门容易
3. 面向对象(对象)----> 封装 继承 多态
4. 具有健壮性----> 1.1 GC(垃圾回收) 1.2 异常处理机制
5. 多线程 Thread
6. 分布式 Socket URL
7. 安全性
二.入门案例
想编写Java代码,必须先安装jdk
2.1 下载安装jdk
1.进入Oracle官网--->点击产品--->点击java
2.拉到最下面,点击立即下载
3.拉到下面,选择jdk11,选择.exe
4.下载之后,双击进行安装
5.这里直接安装到了C盘,其他盘也可。
bin目录:存放.dll配置文件和.exe工具。即存放可执行文件,在win里双击可运行的文件。
conf目录:一些配置
jmods目录:11版本中模块的jar包都在该目录(8版本是在lib目录)
lib目录:存储jar文件,也叫类库文件
6.校验本机是否有jdk,从而辅助Java开发
win+r -----> cmd ----> 输入Java,javac都能运行(但jar等命令不能运行,即不是全部可运行)。
(原因:安装jdk11之后 会自动的在系统的环境变量中 path: 加一行内容。)
若删除该行,java和javac不能运行。
(系统环境:右键此电脑,点属性--->点高级系统设置---->点环境变量)
2.2 配置环境
第一种:
在系统的环境变量中 path: 配置jdk的bin目录。(java和javac命令是依靠bin目录下的java.exe和javac.exe执行的。)
编辑
(用户变量只对当前用户有效。系统变量。不管哪个用户都有效,故一般配置系统变量)
(选择新建)
编辑
(点击浏览,找到bin目录)
编辑
最后依次点击确定即可。
效验后没问题。(jar和javadoc也可运行,只要bin目录里存在这些.exe,都可运行)
第二种:(一般开发推荐该方式,后期tomcat依赖JAVA_HOME)
1.1 新建新的变量: JAVA_HOME=jdk的根目录 C:\Program Files\Java\jdk-11.0.14 编辑
1.2 在系统的环境变量中 path=jdk的bin目录 (动态的获得JAVA_HOME变量的值)
怎么动态获取?
2.3 HelloWorld.java
1. 在计算机里面编写java文件(可先安装Notepad++) -----java源代码
//单行注释: 类名规范: 1. 大写驼峰 2. 见名知意 3.类名必须与java文件名一致 public class HelloWorld{//程序的入口(函数/方法/功能)//java程序的运行在jvm执行---> 只认识mainpublic static void main(String[] abc){//编写功能代码//简单的打印输出一些数据System.out.println(100);System.out.println("hello world");}}
2. 运行java程序---> 在jvm里面运行,只加载class文件,故需要先编译(任意一门语言 编写代码 都要编译源代码)
从编译角度分析,编程语言又分为:
1. 编译型语言(自己可以编译) C
2. 解释型语言(在浏览器上进行解释运行 html js css)
java: 两者都不属于,只能手动通过命令编译java代码,编译出class文件。
2.1 编译工作(compile),使用javac指令,后面跟java文件 javac HelloWorld.java
一些doc的简单指令:dir,展示当前路径下的所有一级资源
cd,切换路径。java文件在桌面,故切换到桌面
此时再dir,就会找到该java文件。然后javac HelloWorld.java
显示乱码,win系统只认识GBK。而用Notepad++默认编码格式UTF-8,故将编码格式改成ANSI,等价于GBK。(这是在编码之前可这样做,此时代码已经是UTF-8,故改变编码格式会乱码)
可以如下去做: 先用记事本打开:
然后另存为ANSI:
此时再执行javac HelloWorld.java,桌面会多出HelloWorld.class文件 .class文件可用反编译工具去查看(jd-gui.exe工具)
2.2 运行class文件,使用java指令,后跟class文件名称(不带后缀) java HelloWorld
2.4 注释
1.单行注释 // 注释不参与编译
2.多行注释 /* */
3.文档注释
文档注释用来解释说明 class/interface/enum/每个方法 ,一般在类以及方法上面,格式如下: 一般在类以及 方法上面 /***@author:*@descrption:*@date:*@version:*@since:*/
/***@author: Lisa*@descrption: 入门案例*@date: 2022-02-09 12:00:00*@version: 0.1*@since: jdk11*/ public class HelloWorld{//单行注释: 类名规范: 1. 大写驼峰 2. 见名知意 3.类名必须与java文件名一致//程序的入口(函数/方法/功能)//java程序的运行在jvm执行---> 只认识main/***@descrption:*@param abc*@param abc*@return *@throws*/public static void main(String[] abc){//编写功能代码//简单的打印输出一些数据/*System.out.println(100);System.out.println("hello world");*/System.out.println(100);System.out.println("hello world");}}
2.5 注意
1.只要修改源代码 都需要重新编译
2.java代码是严格区分大小写的
3. 每一行代码的结束都必须加;
三. IDE
以上用记事本写代码,再使用doc命令去编译和运行,效率极低。
IDE是集成开发环境。
常见的IDE有:IDEA Eclipse MyEclipse、
我们使用IDEA,IDEA不仅仅辅助java开发,也支持HTML,CSS,PHP,Python等
有最终版和社区版两个版本,后面用到的web开发等,必须使用最终版。
双击即可。
启动项目,先选择试用30天,创建项目,SDK是软件开发工具包。
src放源代码
运行程序后,out目录存放编译后的class文件。(class文件里没有注释内容)
3.1 修改idea配置
1.修改主题
黑色主题
白色主题
下载相关主题
2. 修改字体
修改字体
3. 修改注释颜色
多行,文档,单行注释
4. 配置文档注释模板
选择class,再选择includes,开启文档注释,写相关内容。
5. 取消首字母敏感
好处:首字母小写时也会有提示。
6.配置编码格式
idea设置-----编码格式设置_翱翔的小菜鸟的博客-CSDN博客_idea 编码设置
7.安装常用插件
Translation中英文翻译工具
8.忽视某些文件
idea忽略某些文件_星夜小筑的博客-CSDN博客_idea忽略
3.2 创建项目
第一种方式:
每次都是一个新的project 默认就是一个窗口一个project
第二种方式: maven项目聚合
一个窗口里面展示多个项目: 创建一个空project-----> 创建多个module 一个module也是一个项目。
四.数据类型
4.1 引用数据类型
String字符串 类 接口 数组 集合
默认值: null
4.2 基本数据类型
4类8种
1. 整数类型
代表的是一个整数。
byte字节 |
1个字节 8bit |
-128-127 |
默认值: 0 |
short 短整型 |
2 16 |
-2^15 2^15-1 |
0 |
int整型 |
4 32 |
-2^31 2^31-1 |
0 |
long 长整型 |
8 |
-2^63 2^63-1 |
0L/ 0l |
默认int
2. 小数类型
维护钱数据,不能使用float/double,因为小数间运算可能丢数据,不能保证精度。
维护钱数据,应该使用long(钱的分) 或者BigDecimal(不丢失任意精度的小数类型)
内存 |
取值范围 |
默认值 |
|
float |
4 |
0.0F/0.0f |
|
double |
8 |
0.0 0.0D |
默认double
3. 单字符类型
char 2个字节 \u0000-\ufffff 默认值: \U0000
必须使用单引号 'a'
4. 布尔类型
boolean 1bit 值只有2个: true 和 fasle 0 1
默认false
4.3 需求
package: 解决类重名问题。
包名规范: 全部小写,一般是:公司域名后缀名 +公司名称+项目名称+模块+其他。
拿www.baidu.com来说,com就是公司域名后缀名。 com.baidu.xxx.xxx
com.javasm.xxx 不勾选则层级展示包。
用代码维护一个学生的基本信息。
性别: 男 ----------单字符 姓名: 张三 ----------字符串 学号:10001 ----------字符串或整数 年龄: 18 成绩: 80.5 是否是好学生: true
/*** 维护学生基本信息*/ public class StudentInfo {public static void main(String[] args) {System.out.println('男'); //单字符用单引号System.out.println("张三"); //字符串用双引号System.out.println(1001);System.out.println(80.5);System.out.println(true);} }
/*** 维护学生基本信息*/ public class StudentInfo {public static void main(String[] args) {//程序运行期间产生的数据,叫做字面量/常量。//一个数据占一块内存,对应有内存地址值(是随机产生的,无法通过该值拿到数据),故应该使用标识维护内存的数据System.out.println('男'); //单字符用单引号System.out.println("张三"); //字符串用双引号System.out.println(1001);System.out.println(80.5);System.out.println(true);//一个标识一个数据,用标识去代表内存地址值(从内存里找数据是通过内存地址值找数据),标识即变量//变量: 就是内存里面每个数据的标识System.out.println("--------------------------");//变量名称: 小写驼峰 目前不能重名 不能使用关键字//数据类型 变量名称 = 数据;//初始化局部变量(只在main方法有效)char gender = '男'; //变量名要见名知义String studentName = "张三";int studentNo = 10001;int age = 18;float score = 80.5F;boolean flag = true;//使用变量(运算,打印等)System.out.println(gender);System.out.println(studentName);System.out.println(studentNo);System.out.println(age);System.out.println(score);System.out.println(flag);//运算age = age + 1;System.out.println(age);} }
4.4 变量
变量: 就是内存里面每个数据的标识. 使用变量定义不同类型的数据。
1. 全局变量
2.局部变量
语法1 :
数据类型 变量名称 = 数据; int num = 100; //初始化一个变量
语法2:
数据类型 变量名称; int num; //声明一个变量
变量名称 = 数据; num = 2; //赋值
3. 注意
string+基本数据类型,又统称为字面量
4.5 数据类型转换
2个相似类型之间发生类型转换。
目前只考虑基本数据类型。-----> 其实就是数值类型之间的转换。
byte short char int long float double,精度从小到大,没有布尔类型
1. 隐式转换(自动转换)
精度低的数据转换成精度高的数据。
2. 强制转换
精度高的数据转换成精度低的数据. 后果: 数据可能会溢出 数据丢失
五. 运算符
使用特定的运算符 实现不同变量之间 不同的数据之间 的相关运算。
5.1 赋值运算符
int age1 = 20; =右边的数据赋值给了 =左边的变量
= |
+= |
-= |
*= |
/=(除等) |
%=(模等) |
赋值 |
5.2 算术运算符
+ |
- |
* |
/ |
% |
++ |
-- |
+ |
加法 |
取余 |
自增+1 |
自减-1 |
拼接 |
想使用++ -- 这个变量必须要是一个局部变量。并发/多线程 有问题。
5.3 比较运算符
最后结果: boolean
> |
< |
>= |
<= |
== |
!= |
比较2个变量是否相等 |
5.4 逻辑运算符
最后结果类型: boolean
& |
&& |
| |
|| |
^ |
! |
逻辑与 |
逻辑与 |
逻辑或 |
逻辑或 |
异或 |
获得相反结果 |
5.5 位运算符(了解)
&: 位与 |: 位或 ^: 异或
5.6 三元运算符
语法: 数据类型 变量 = (表达式boolean)?(表达式1):(表达式2);
表达式1和表达式2运算之后的结果类型 必须要一致或者相似。
六.SVN/git
subversion. 版本管理工具。(用于团队开发一个项目的工具),可基于局域网部署
码云 gitee / github,需要联网
七.课后练习
7.1 HelloWorld
//类名规范:1.大写驼峰 2.见名知意 3.类名必须与java文件名一致 public class HelloWorld{ public static void main(String[] args){ //程序的入口(函数/方法/功能)System.out.println(100);System.out.println("Hello world"); } }//compiler编译 comment注释 font字体 author作者 descrption描述 version版本 //live templates 动态模板
7.2 描述手机信息
public class phoneInfo {public static void main(String[] args){String brand = "小米";double weight = 12.4;int capacity = 4050;int price = 6999;double thickness = 5.3;System.out.println(brand);System.out.println(weight);System.out.println(capacity);System.out.println(price);System.out.println(thickness);} }
7.3 使用局部变量定义所有的数据类型
public class DataType {public static void main(String[] args){//整数类型byte by = -100;short sh = 100;int num = 1000;long longNum = 100L;//小数类型float f = 10.0F;double d = 10.1111;//单字符类型char c1 = 'a';char c2 = '1';char c3 = '我';char c4 = 97; //ASCII achar c5 = '\u67d0'; //win系统里的字符映射表 某System.out.println(c1);System.out.println(c2);System.out.println(c3);System.out.println(c4);System.out.println(c5);//布尔类型boolean flag = true;System.out.println(flag);//引用类型String str = "hello";String str1 = new String("hello"); //括号里是“hello”System.out.println(str); //helloSystem.out.println(str1); //hello} }
7.4 数据类型转换
public class DatatypeConverter {public static void main(String[] args){//自动转换int num = 100;double douNum = num;System.out.println(douNum); //100.0char ch = 'a'; //97int num1 = ch; //a转成ASICC码里的数值97System.out.println(num1); //97//强制类型转换double dou = 10.45678;int n = (int)dou; //变量=(目标类型)原类型System.out.println(n); //10byte b = (byte) n; //alt+回车System.out.println(b); short s1 = 10;short s2 = 10;short num3 = (short)(s1 + s2); //整数都默认int,两整数相加还是int,故想要short类型,要强转System.out.println(num3); } }
7.5 运算符
public class Yunsuanfu {public static void main(String[] args){//赋值运算符 算术运算符int num1 = 100;int num2 = 10;System.out.println(num1 + num2); //110System.out.println(num1 - num2); //90System.out.println(num1 * num2); //1000System.out.println(num1 / num2); //10System.out.println(num1 % num2); //0int num3 = 10;num3 += 10; //num3 = num3 +10; //20num3 -= 10; //10num3 /= 10; //1num3 *= 10; //10num3 %= 3; //1System.out.println(num3);//++ --int a = 10;int b = a++; //先将a的数值赋值给b,a再自增加1System.out.println(b); //b=10System.out.println(a); //a=11b = ++a; //a先自增加1,再将自增后的结果赋值给bSystem.out.println(b); //b=12System.out.println(a); //a=12int x = 100;x = ++x; //x自增加1,再赋值给x,故x=101System.out.println(x);x = x++; //x直接赋值给x,故x=101.实际为:temp = x;x++;x = temp;(用到变量缓存)System.out.println(x);String name = "张三";int age = 30;System.out.println("用户名"+name); //+是拼接System.out.println("年龄"+age);} }
7.6 比较运算符
public class Yunsuanfu1 {public static void main(String[] args){//局部变量,且是基本数据类型,比较的是数据。占一块栈内存int num1 = 100;int num2 = 200;System.out.println(num1 > num2); //falseSystem.out.println(num1 >= num2); //falseSystem.out.println(num1 < num2); //trueSystem.out.println(num1 <= num2); //true//局部变量,且是引用数据类型,比较的是内存地址值,占据两块内存。//变量和引用是一个概念,变量名称全部在堆内存//对String而言,数据是常量,在常量池(jdk1.8之后)String str1 = "hello";String str2 = "hello";String str3 = new String("hello"); //看到new,内存在堆内存System.out.println(str1);System.out.println(str2);System.out.println(str3);System.out.println(str1==str2); //trueSystem.out.println(str1==str3); //false//字符串数据比较语法:字符串1.equals(字符串2)System.out.println(str1.equals(str3)); //true} }
7.7 逻辑运算符
public class Yunsuanfu2 {public static void main(String[] args){//逻辑运算符:多个表达式之间运算//用户登录:用户名和密码一致String trueName = "admin";String truePass = "1234";boolean flag1 = "admin".equals(trueName);boolean flag2 = "123".equals(truePass);System.out.println(flag1 && flag2);int num1 = 10;int num2 = 100;//第一个表达式true 不管使用&/&& 后面的表达式都要参与运算System.out.println((num1 < num2) & (num1 > num2));System.out.println((num1 < num2) && (num1 > num2));//第一个表达式false,&&后面就没必要执行,而&还要执行//&&:短路与 推荐使用//&:表达式全部都要执行System.out.println((num1 > num2) && (num1 < num2));System.out.println((num1 > num2) && (num1 < num2));//同上System.out.println((num1 > num2) | (num1 < num2));System.out.println((num1 > num2) || (num1 < num2));//^异或,相同则为falseSystem.out.println(false ^ true);//! 非,相反的结果System.out.println(!true);} }
7.8 位运算
public class Yunsuanfu3 {public static void main(String[] args){System.out.println(4 & 7); //转换成2进制进行位运算,结果为4//0100//0111//0100System.out.println(4 | 7); //7//0100//0111//0111System.out.println(4 ^ 7); //0011,结果为3//0100//0111//0011}
7.9 三元运算符
public class Yunsuanfu4 {public static void main(String[] args){String result = (4 > 7)?"hello":"helloWorld"; //helloWorldSystem.out.println(result);//看精度高的数据类型int num = (int)((5 < 1)?100:200.234); //200System.out.println(num); //求三个数的最值int a = 100,b = 200,c = 300;int max = (a > b)?a:b;max = (max > c)?max:c;//或者int max = (a > b)?((a > c)?a:c):((b > c)?b:c);System.out.println(max);} }
八.作业
8.1求一光年是多少千米 , 光在真空中传播速度299792458 m/s
public class Homework1 {public static void main(String[] args){double speed = 299792.458;long time = 365*24*60*60;double distance = speed*time;System.out.println("一光年是多少千米:"+ distance); } }
8.2根据天数(46)计算周数和剩余的天数
public class Homework2 {public static void main(String[] args){int days = 46;int week = days/7;int leftDay = days%7;System.out.println("周数为:"+week);System.out.println("剩余天数为:"+ leftDay);} }
8.3已知圆的半径radius= 1.5,求其面积 (Java中π用Math.PI表示)
public class Homework3 {public static void main(String[] args){double radius = 1.5D;//double area = Math.PI*radius*radius;//圆周率用Math.PI表示double area = Math.PI*Math.pow(radius,2);//N次方用Math.pow()表示System.out.println("面积为:" + area);} }
8.4自己给定5个整数,通过编程求出最大值(使用三元运算符)
public class Homework4 {public static void main(String[] args){int a = 1,b = 2,c = 3,d = 4,e = 5;int max = (a > b)?a:b;max = (max > c)?max:c;max = (max > d)?max:d;max = (max > e)?max:e;System.out.println("最大值为:" + max);} }
8.5韩梅梅看中两把价格相同的扇子,想挑选一个扇面较大的扇子购买,请你帮她挑选。 A款折叠扇:展开后角度为134.6°,扇骨长26.5cm 。 B款圆扇:扇柄长12.3cm,扇子总长度36.5cm 。注:圆形面积 = 3.14 * 半径平方 ,扇形面积 = 3.14 * 半径平方 * (度数/360)
public class Homework5 {public static void main(String[] args){double areaA = Math.PI*Math.pow(26.5,2)*134.6/360;double areaB = Math.pow(36.5-12.3,2)/Math.PI;String max = (areaA>areaB)?"A款折叠扇":"B款圆扇";System.out.println(max);} }
8.6变量a和b的值互换 例如:int a = 10,b=20;
public class Homework6 {public static void main(String[] args){int a = 10,b = 20;int temp = a;a = b;b = temp;System.out.println(a);System.out.println(b);} }
8.7定义一个变量,是一个三位数,求各个位数的和. 如:123,结果是1+2+3=6
public class Homework7 {public static void main(String[] args){int num = 123;int bai = num / 100;int shi = num / 10 % 10;int ge = num % 10;int sum = bai + shi + ge;System.out.println(sum);} }
java第一阶段(day01)相关推荐
- java - 第一阶段总结
java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi {public static void main(String ...
- Java 第一阶段建立编程思想 【房屋出租系统】
Java 第一阶段建立编程思想 [房屋出租系统] 1. 项目需求说明 2. 项目界面 1. 主菜单 2. 新增房源 3. 查找房源 4. 删除房源 5. 修改房源 6. 房屋列表 7. 退出系统 3. ...
- java第一阶段知识_坚持:学习Java后台的第一阶段,我学习了那些知识
最近的计划是业余时间学习Java后台方面的知识,发现学习的过程中,要学的东西真多啊,让我一下子感觉很遥远.但是还好我制定了计划,自己选择的路,跪着也要走完!关于计划是<终于,我还是下决心学Jav ...
- Java第一阶段筑基期修炼法则(拜山帖)
*作为初学者在今后本小白将不定时分享在Java崎岖的道路上的艰难险阻与各位君共勉!* 第一阶段Java的学习路线我准备这么走: ①基础语法(java的敲门砖建立java编程逻辑)②面向对象(java的 ...
- java第一阶段知识_第一阶段 Java语言(下)
本课程是Android入门教程之Java核心技术阶段,是Java开发高级部分,安卓开发中的基础知识,讲解以下内容: (一)反射与内省 讲解了什么是反射,反射在应用中的作用,相关反射的API,如Clas ...
- java第一阶段(day14)MySQL
1.DBMS 为什么学习io?数据持久化. io不太好用.逻辑操作比较复杂.换另外一种技术实现数据的持久化?将数据存储到库里面----->数据库 Database听说过的数据库: Mysql o ...
- java第一阶段面面试题_java基础阶段几个必会面试题
1.说出你对面向对象的理解 在我理解,面向对象是向现实世界模型的自然延伸,这是一种"万物皆对象"的编程思想.在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例 ...
- java第一阶段(day11)Utill包常用类
一周总结 异常 1. 什么是异常?程序运行期间 出现了不正常的现象. 异常/错误2. 异常分类编译时异常: IoExceptionParseExceptionClassNotFoundExceptio ...
- java第一阶段(day05)面向对象
回顾 方法 为什么使用方法?1. 都放在一个方法中 代码量过多 一个方法里面代码量<=802. 提取重复的代码 封装成一个单独的方法 直接多次调用方法即可3. 方法中 调用很多小的方法方法组成部 ...
最新文章
- mac 不显示 外接屏幕_Mac移动硬盘热拔(直接拔掉)后,再插上不显示移动硬盘解决办法...
- python opencv打开摄像头
- hosts 持续更新 - laod
- 在线音乐网站Pandora申请IPO融1亿美元
- 北京林业大学c语言题库,2016年北京林业大学信息学院数据结构考研复试题库
- Easy UI中dategrid的getSelections方法只能获取一个id的解决办法
- 总结一下适合自己的看书方式
- 导出excel写入公式_乱码、公式出错、效率低,这些excel“事故”的解决办法来了...
- Unity3D(四)Camera和SkyBox
- 微信和qq默认表情代码对照表及表情文件下载
- 从excel表格生成ArcGIS Pro样式符号
- 华为手机如何更新鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤
- python编程星期几_python如何获取星期几
- 物联网毕业设计 车牌识别系统 stm32
- 房东要涨800房租,我用Python抓取帝都几万套房源信息,主动涨了1000。
- 计算机笔记检讨,上课没做笔记的反省检讨书
- RC滤波器(高通/低通)
- Java字节码,字节码指令
- hive数据备份方案
- uname -r和uname -a