当前位置:   article > 正文

适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P1~P62)_韩顺平笔记下载

韩顺平笔记下载

写在最前边:

研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。

Java 基础

前言

1、学习方法

请添加图片描述

2、API文档

java8在线中文文档https://www.matools.com/api/java8

读懂java类的组织形式
请添加图片描述

第一阶段 相关概念介绍

一、java重要特点
  1. 面向对象(oop)

  2. 健壮的。

    强类型机制、异常处理、垃圾的自动收集等式java程序健壮性的保证

  3. 跨平台性(因为jvm)

    一个编译好的.class文件可以在多个系统下运行

  4. 解释型语言

    编译后的代码.class文件,不能直接被机器执行,还需要一个解释器。

    对应的编译型语言,如c/c++,编译后的代码就是二进制文件,可以直接被机器执行。

    两种语言的性能强弱不一定

二、jdk介绍

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开发工具包。

  • jdk = jre + java的开发工具(java , javac , javadoc , javap等)
  • jdk是给开发人员使用的,包含jre。
  • 目前实际应用最多的是jdk8、jdk11.因为他们是长期支持版。

2.2 jre即java runtime environment

  • jre = jvm + java 的核心类库
  • 如果不需要开发只需要运行一个java程序(.class文件),那么主机中只需要安装jre

所以jdk = jvm + java开发工具 + java的核心类库

3、jdk 环境变量配置

不配置可不可以?可以。但是每次必须在jdk/bin的路径下使用javac和java的命令

配置的好处:在任何路径下都可以使用java、javac等命令。原因如下:若当前执行的程序在当前目录下不存在的话,win10就会在path这个环境变量中指定的目录中寻找这个程序。找到就可以执行、找不到就会报错:“XXX”不是内部或者外部命令,也不是可运行的程序或者批处理文件。
请添加图片描述

三、java第一个程序
public class Hello{//类的开始
	//编写一个mian方法
	public static void  main(String[] arg){//主方法,程序的入口
		System.out.println("hello,world~");
	}
}//类的结束
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

请添加图片描述

请添加图片描述

错误原因:java想要运行的是Hello这个类,而不是要找.class文件。所以不用加.class

正确运行:

请添加图片描述

注意:修改代码后的java文件需要重新编译成新的.class文件才能正确运行

四、java开发注意事项和细节说明

请添加图片描述

第6点详细说明:一个.java文件中可以写多个类,但是最多只有一个public类。使用多个类的.java文件,编译后得到多个.class文件,分别对应.java文件中出现的类。如:

请添加图片描述

请添加图片描述

这也对应了第8点,每种类中都可以加上主城如的入口,因为编译后是三个.class文件,入口不会冲突,分别运行就好。

五、java中的转义字符

请添加图片描述

  • 注意1

    \\ 输出 \

    \\ \\输出 \\

  • 注意2

    \r表示光标回到字符串起始位置显示后续字符

    \r\n = \n的用法

六、常见错误

1、语法错误(好找)

2、业务错误。编译没问题,但是实际运行和想象的不一样。

3、环境错误

七、注释

1、单行用“//”

2、多行用“/* */”

多行注释不可以嵌套

注释内容不会被解析
  • 1

3、文档注释

注释内容可以被jdk提供的工具javadoc解析,生成以网页文件形式显示的 该程序的 说明文档。一般写在类。

  • 注释位置:随处均可

  • 格式:@author 和@version都是特定的javadoc标签,而不是自己随意写的

    /**
     * @author 李雨菲
     * @version 1.0
     */
    
    • 1
    • 2
    • 3
    • 4

    请添加图片描述

  • 生成注释文档的命令
    javadoc -d 建好的空文件夹路径 -标签名1 -标签名2 源文件
    请添加图片描述

八、java代码规范

请添加图片描述
第6点“行宽”指的是代码不要写太长,超过屏幕可显示范围不好看
第7点举例:
请添加图片描述

九、相对路径与绝对路径(视频0027)请添加图片描述

注意:相对路径中,…\ 表示返回上一级目录(文件夹)。

第二阶段 java编程

第一章 变量

变量是程序的基本组成单位,对哪种语言都是如此。变量=类型+名称+值

声明变量后,内存会开辟一块存储空间,存储变量的值,记住变量名称作为索引地址。

数据类型不一样开辟的空间大小也不一样

变量必须先声明后使用

变量的值可以修改,但是修改后必须也是同一类型的值。

同一个作用域中不能有同名的变量

第二章 “+”号的使用规则
  • 数值 + 数值 :做加法运算,结果是数值

  • 数值 + 字符串 或者 字符串 + 数值 或者 字符串 + 字符串 : 做拼接运算,结果是字符串

    但是注意,当多个运算符号时,要按照从左至右的运算顺序来
    请添加图片描述

第三章 数据类型(java是强数据类型的,意思是不管运行在哪个平台这些类型所占字节长度都是固定不变的)

一、概念

请添加图片描述

说明:

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中做运算(加减乘除之类)后,得到的结果并不是精确值。

所以在做判等时要非常注意,不可以直接用 == ,而是用差值的绝对值是否在误差范围内进行判等。误差范围在不同的业务中选择也不同。

请添加图片描述

二、数据类型转换(要注意,整数默认的类型是int ,小数默认的类型是double。但是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;//正确
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意:

  • char与byte\short之间不存在转换关系不能互相赋值,但是可以进行运算,运算结果是int型。
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型 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • boolean类型不参与转换

  • 运算规则遵循自动提升原则:表达式结果 的类型 自动提升为 操作数中最大的类型。

byte a = 1;
short b = 30;
int c = 288;
double d = 1.92;

float num = a + b + c + d; //报错,运算结果是double > float
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(2)强制转换(个人行为,要心中有数再做这个操作)会造成精度损失、数据溢出。
请添加图片描述

(3)String类与基本数据类型的转换

​ String --> 基本数据类型

int a = 1;
String s = a + "";
  • 1
  • 2

​ 基本类型 --> 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中的第一个字符
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

请添加图片描述

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中的第一个字符
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/986961
推荐阅读
相关标签
  

闽ICP备14008679号