赞
踩
研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。
java8在线中文文档https://www.matools.com/api/java8
读懂java类的组织形式
面向对象(oop)
健壮的。
强类型机制、异常处理、垃圾的自动收集等式java程序健壮性的保证
跨平台性(因为jvm)
一个编译好的.class文件可以在多个系统下运行
解释型语言
编译后的代码.class文件,不能直接被机器执行,还需要一个解释器。
对应的编译型语言,如c/c++,编译后的代码就是二进制文件,可以直接被机器执行。
两种语言的性能强弱不一定
1、java跨平台性依靠的是jvm
1.1 java的核心机制也是java虚拟机-jvm
1.2 jvm包含在jdk中,是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
1.3 不同的平台,用不同的虚拟机,并不是一种虚拟机在多平台的通用。也正是不同平台上不同版本的虚拟机,使得java的.class文件可以屏蔽底层的运行平台的差别,因为它在虚拟机上运行就可以。
2、jdk与jre
2.1 jdk即java development kit ,java开发工具包。
2.2 jre即java runtime environment
所以jdk = jvm + java开发工具 + java的核心类库
3、jdk 环境变量配置
不配置可不可以?可以。但是每次必须在jdk/bin的路径下使用javac和java的命令
配置的好处:在任何路径下都可以使用java、javac等命令。原因如下:若当前执行的程序在当前目录下不存在的话,win10就会在path这个环境变量中指定的目录中寻找这个程序。找到就可以执行、找不到就会报错:“XXX”不是内部或者外部命令,也不是可运行的程序或者批处理文件。
public class Hello{//类的开始
//编写一个mian方法
public static void main(String[] arg){//主方法,程序的入口
System.out.println("hello,world~");
}
}//类的结束
错误原因:java想要运行的是Hello这个类,而不是要找.class文件。所以不用加.class
正确运行:
注意:修改代码后的java文件需要重新编译成新的.class文件才能正确运行
第6点详细说明:一个.java文件中可以写多个类,但是最多只有一个public类。使用多个类的.java文件,编译后得到多个.class文件,分别对应.java文件中出现的类。如:
这也对应了第8点,每种类中都可以加上主城如的入口,因为编译后是三个.class文件,入口不会冲突,分别运行就好。
注意1
\\ 输出 \
\\ \\输出 \\
注意2
\r表示光标回到字符串起始位置显示后续字符
\r\n = \n的用法
1、语法错误(好找)
2、业务错误。编译没问题,但是实际运行和想象的不一样。
3、环境错误
1、单行用“//”
2、多行用“/* */”
多行注释不可以嵌套
注释内容不会被解析
3、文档注释
注释内容可以被jdk提供的工具javadoc解析,生成以网页文件形式显示的 该程序的 说明文档。一般写在类。
注释位置:随处均可
格式:@author 和@version都是特定的javadoc标签,而不是自己随意写的
/**
* @author 李雨菲
* @version 1.0
*/
生成注释文档的命令
javadoc -d 建好的空文件夹路径 -标签名1 -标签名2 源文件
第6点“行宽”指的是代码不要写太长,超过屏幕可显示范围不好看
第7点举例:
注意:相对路径中,…\ 表示返回上一级目录(文件夹)。
变量是程序的基本组成单位,对哪种语言都是如此。变量=类型+名称+值
声明变量后,内存会开辟一块存储空间,存储变量的值,记住变量名称作为索引地址。
数据类型不一样开辟的空间大小也不一样
变量必须先声明后使用
变量的值可以修改,但是修改后必须也是同一类型的值。
同一个作用域中不能有同名的变量
数值 + 数值 :做加法运算,结果是数值
数值 + 字符串 或者 字符串 + 数值 或者 字符串 + 字符串 : 做拼接运算,结果是字符串
但是注意,当多个运算符号时,要按照从左至右的运算顺序来
说明:
1、java数据类型分为两大类——基本数据类型、引用(复杂)数据类型
2、基本数据类型中再分为8种:
(1)数值型
- 整数型(byte[1字节],short[2],int[4],long[8])。
int最多能表示到21亿的10位数了,默认是int型,声明long型常量后边必须加“l"或”L"。- 浮点型(float[4].double[8])
浮点数 = 符号位+指数位+尾数位。但是由于尾数部分可能丢失,所以小数都是近似值。
默认是double型,声明float型常量后边必须加"f"或”F",慎用,float只能保存小数点后七位。
(2)字符型(char[2])—存放单个字符,也可以存放一个数字,但是这个数字会被java识别为字符的unicode码,然后输出这个unicode码对应的字符。其实char的本质就是一个数整数,即字符的unicode编码,因此char也可以进行运算
字符编码(了解):
其中unicode兼容ascii码,utf-8是unicode的改进是变长的编码。
(3)布尔型(boolean[1]),存储true/false
3、引用类型分为类、接口、数组。(在面向对象讲)
String、BigInteger、BigDecimal属于类
4、浮点数陷阱
由于小数在java中做运算(加减乘除之类)后,得到的结果并不是精确值。所以在做判等时要非常注意,不可以直接用 == ,而是用差值的绝对值是否在误差范围内进行判等。误差范围在不同的业务中选择也不同。
(1)自动转换(小精度->大精度。)
例子:
int num = 'a'; //没问题,因为char的精度小于int的精度,可以自动转换
double d1 = 80; //没问题,80默认是int型,int精度小于double精度,可以自动转换
int n = 10;
float d1 = n + 1.2 ; //报错,因为1.2默认是double类型。double精度 > float精度,不能自动转换。
float d1 = n + 1.2f;//正确
注意:
byte b1 = 1;
byte b2 = 2;
short s1 = 3;
short s2 = b1 + b2 ; //报错,因为b1 + b2 -> int型,int > short。
int s2 = b1 + b2;
byte b3 = b1 + b2 ; //错!!b1 + b2 => int型
boolean类型不参与转换
运算规则遵循自动提升原则:表达式结果 的类型 自动提升为 操作数中最大的类型。
byte a = 1;
short b = 30;
int c = 288;
double d = 1.92;
float num = a + b + c + d; //报错,运算结果是double > float
(2)强制转换(个人行为,要心中有数再做这个操作)会造成精度损失、数据溢出。
(3)String类与基本数据类型的转换
String --> 基本数据类型
int a = 1;
String s = a + "";
基本类型 --> String (使用包装类)
String s = "123";
int num1 = Integer.parseInt(s);
double num2 = Double.parseDouble(s);
float num3 = Float.parseFloat(s);
long num4 = Long.parseLong(s);
byte num5 = Byte.parseByte(s);
short num6 = Short.parseShort(s);
boolean b = Boolean,parseBoolean("true");
//对字符串中单个字符的操作
char c = s.charAt(0) //取出s中的第一个字符
num4 = Long.parseLong(s);
byte num5 = Byte.parseByte(s);
short num6 = Short.parseShort(s);
boolean b = Boolean,parseBoolean("true");
//对字符串中单个字符的操作
char c = s.charAt(0) //取出s中的第一个字符
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。