狂神说Java基础知识点

1、MarkDown学习

标题

数字+空格+标题名

字体

helloworld! : 加粗

helloworld! : 斜体

helloworld!:斜体加粗

helloworld! :加横线

引用

这是一个引用段落文字

分割线



截图2

超链接

[点击跳转到博客地址](https://www.bilibili.com/)

列表

有序列表:数字+点+空格

  1. a

  2. c

  3. d

无序列表:横线+空格

  • 1

  • 2

表格

名字 生日 年龄
漆大阳 2000 21

代码

public static void mian(Stirng[] args){
}

2、常用Dos命令

打开CMD的方式:

  1. 开始+系统+命令提示符
  2. Win键+R输入cmd打开控制台(推荐使用)
  3. 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口
  4. 资源管理器的地址栏前面加上 cmd路径

以管理员方式运行:

  • 右键命令提示符,选择以管理员方式打开
#盘符切换 :D:
#查看当前盘符下的所有文件 :  dir
#切换目录 : cd(change directory)
#cd..
#清理屏幕 cls (clear screen)
#退出终端 exit 
#查看电脑ip ipconfig
#打开应用
	calc
	notepad
#ping 命令
	ping www.baidu.com
#文件操作
	md + 目录名:创建目录
	rd + 目录名:删除目录
	cd + 文件名:切换文件夹
	del+ 文件名:删除文件夹

3、Java入门

3.1、Java发展

  • 构建工具:Ant,Maven

  • 应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic

  • web开发:Struts,Spring,Hibernate,myBatis

  • 开发工具:Eclipse,NetBean,intellij idea,jBuilder

  • ......

3.2、Java特性和优势

  • 简单性
  • 面向对象
  • 可移植性
  • 高性能
  • 分布式
  • 动态性
  • 多线程
  • 安全性
  • 健壮性

3.3、Java三大版本

  • JavaSE: 标准版(桌面程序,控制台开发….…)
  • JavaME: 嵌入式开发(手机,小家电..….
  • JavaEE: 企业级开发(web端,服务器开发...)

3.4、JDK,JRE,JVM

  • JDK : Java Development Kit
  • JRE: Java Runtime Environment
  • JVM : JAVA Virtual Machine

3.5、Java开发环境搭建

安装JDK:

  • JDK下载与安装
  • 配置环境变量
  • JDK目录介绍
  • HelloWorld及简单语法规则

卸载JDK:

  1. 删除Java的安装目录
  2. 删除JAVA_HOME
  3. 删除path下关于Java的目录
  4. java -version

3.6、HelloWorld

  1. 新建Hello.java文件
public class Hello{
	public static void  main(String[] args){
		System.out.println("Hello World!");
	}
}
2. 用cmd打开第一步建立的文件
3. 使用语句javac Hello.java运行(编译,会生成class文件)
4. 使用语句java Hello运行java class字节码文件
5. 输出Hello World!

3.7、可能遇到的问题

  1. 每个单词的大小不能出现问题,
  2. Java是大小写敏感的2.尽量使用英文
  3. 文件名和类名必须保证一致,并且首字母大写
  4. 符号使用的了中文

4、Java基础

4.1、注释

  • 注释并不会被执行,是给程序员看的

  • 书写注释是一个很好的习惯

  • Java中的注射有三中:

    • 单行注释 ://

    • 多行注释 : /* ---- */

    • 文档注释 : / * *

      			*
      
      				*
      
      			*/
      

4.2、标识符和关键字

4.2.1、标识符

image-20210715180123735

4.2.1、关键字

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线()开始
  • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线()或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary._value、__1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音

4.3、数据类型

强类型语言:

​ 要求变量的使用要严格符合规定所有变量都必须先定义后才能使用

类型语言:

Java的数据类型分为两大类:

  • 基本类型(primitive type)

  • 引用类型(reference type)

基本数据类型:

整数类型:

  • byte
  • short
  • int
  • long

浮点型:

  • float:

  • double

Boolean类型:

​ 占一位,其值只有true和false两个

  • boolean

引用数据类型:

4.4、什么是字节

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个儿位二进制数。

  • 字节(byte)︰是计算机中数据处理的基本单位,习惯上用大写B来表示。

  • 1B(byte,字节) = 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

    • 1bit表示1位,
    • 1Byte表示一个字节1B=8b
    • 1024B=1KB
    • 1024KB=1M
    • 1024M=1G

4.5、类型转换

由于Java是强类型语言,所以要进行有些运算的收,需要用到类型转换。

由低到高:

byte,short,char ------> int -------> long ---------> float -----> double

  • 强制类型转换

(类型)变量名

  • 自动类型转换
注意点:
1.不能对布尔值进行类型转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候,强制转换
4.转换的时候可能存在内存溢出,精度问题

4.6、变量和常量

4.6.1、变量

  • 变量就是可以变化的量,每一个变量必须声明其类型

  • Java中变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

    • type varName [=value]
  1. 局部变量
  2. 全局变量
  3. 类变量

4.6.2、常量

常量:初始化后不能再改变值,不会变动的值。

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

  • 常量一般用大写字母表示
  • 修饰符不存在先后顺序

ex. static final double PI = 3.14

4.6.3、变量名的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则: monthSalary 除了第一个单词以外,后面的单词首字母大写lastname lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则: Man,GoodMan
  • 方法名:首字母小写和驼峰原则: run(), runRun()

4.7、基本运算符

  • 算术运算符:+,-,*,/,%,++,--
  • 赋值运算符:=
  • 关系运算符:>, <, >=, <=, ==, != instanceof
  • 逻辑运算符:&&, ||,!
  • 位运算符:&,|,~,>>, << , >>>
  • 条件运算符:?:
  • 扩展运算符:+=,-=,*=,/=

4.8、自增,自减运算符

i ++,i --

4.9、逻辑运算符,位运算符

......................

4.10、三元运算符

........................

4.11、包机制

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间

包的语法格式为:package pkg1

一般利用公司域名倒置作为报名

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用“import”语句可完成此功能

import package pkg;

4.12、JavaDoc生成文档

JavaDoc命令是用来生成自己API文档的

参数信息:

  • @author 作者名
  • @version 版本号
  • @since指明需要最早使用的jdk版本
  • @param参数名
  • @return返回值情况
  • @throws 异常抛出情况

5、用户交互Scanner

java.util.Scanner是Java5的新特征,我们可以用Scanner类来获取用户的输入。

基本语法:

Scanner s = new Scanner (System.in);

通过Scanner类的next() 与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。

  • next()
  1. 一定要读取到有效字符才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才能将后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串
  • nextline()
  1. 以Enter为结束符,也就是说nextline()方法返回的是输入回车之前的所有字符
  2. 可以获得空白

6、顺序结构

..................

7、if选择结构

...................

8、Switch选择结构

..................

9、While循环

....................

10、DoWhile循环

,,,,,,,,,,,,,,,,,,,,,,,,,,

11、for循环

......................

12、break,continue语句

.......................

13、构造器详解

类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:

  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void

作用:

  1. 使用new关键字,本质是在调用构造器

14、封装

我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。

属性私有:get/set

15、继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。

  • extands的意思是“扩展”。子类是父类的扩展。

  • JAVA中类只有单继承,没有多继承!

  • 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。

  • 继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子

  • 类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系.

16、Super详解

super是继承父类的构造方法

super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个

  2. super 必须只能出现在子类的方法或者构造方法中!

  3. super和this不能同时调用构造方法!

Vs this:

​ 代表的对象不同:

​ this:本身调用者这个对象

​ super:代表父类对象的应用

​ 前提

​ this:没哟继承也可以使用

​ super:只能在继承条件才可以使用

​ 构造方法

​ this();本类的构造

​ super():父类的构造!

17、重写

重写都是静态方法的重写,与变量无关

重写:需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表列表必须相同
3.修饰符:范围可以扩大但不能缩小:public>Protected>Default>private
4.抛出的异常:范围,可以被缩小,但不能扩大; ClassNotFoundException --> Exception(大)重写,子类的方法和父类必要一致;方法体不同! |

为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!

18、多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类或者有关系的类)

多态存在的条件:

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象

注意:多态是方法的多态,属性没有多态。

instanceof :类型转换~引用之间的转换

1.父类引用指向子类的对象
2.把子类转换为父类,向上转型;
3.把父类转换为子类,向下转型;强制转换4.方便方法的调用,减少重复的代码!
封装、继承、多态!

19、static

。。。。。。。。。。

20、抽象类

。。。。。。。。。。。

21、接口

抽象类:extends

一个类可以实现接口(implements 接口)

实现了接口的类,则需要重写接口中的方法~

多继承:利用接口实现多继承~~、

常量:public static final

方法:public abstract

22、内部类

一个Java类中可以有多个class类,但是只能有一个public类

23、异常

异常指程序运行中出现的不期而至的各种状况,如:文件找不到:网络连接失败、非法参数等。异常发生在程序运行期间,它影响了正常的程序执行流程。

public class Application {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        try {
            System.out.println(a / b);
        } catch (ArithmeticException e) {
            System.out.println("程序出现了异常~,变量b不能为0");
        } finally {
            System.out.println("finally输出内容~");
        }
    }
}

24、自定义异常

使用Java内置的异常类可以描述在编程时出现的大部分异常精况。
除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可。

在程序中使用自定义异常类,大体可分为以下几个步骤:

  1. 创建自定义异常类。
  2. 在方法中通过throw关键字抛出异常对象。
  3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
  4. 在出现异常方法的调用者中捕获并处理异常。

经验总结:

  • 处理运行时异常时,采用逻辑去合理规避同时辅助try-catchY处
    上理
  • 在多重catch块后面,可以加一个catch (Exception)来处理可能会被遗漏的异常√对于不确定的代码,也可以加上try-catch,处理潜在的异常
  • 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出具体如何处理异常,要根据不同的业务需求和异常类型去决定
  • 尽量添加finally语句块去释放占用的资源
posted @ 2021-07-18 20:59  NotYourferry  阅读(363)  评论(0编辑  收藏  举报