狂神说Java基础知识点
1、MarkDown学习
标题
数字+空格+标题名
字体
helloworld! : 加粗
helloworld! : 斜体
helloworld!:斜体加粗
helloworld! :加横线
引用
这是一个引用段落文字
分割线
超链接
[点击跳转到博客地址](https://www.bilibili.com/)
列表
有序列表:数字+点+空格
-
a
-
c
-
d
无序列表:横线+空格
-
1
-
2
表格
名字 | 生日 | 年龄 |
---|---|---|
漆大阳 | 2000 | 21 |
代码
public static void mian(Stirng[] args){
}
2、常用Dos命令
打开CMD的方式:
- 开始+系统+命令提示符
- Win键+R输入cmd打开控制台(推荐使用)
- 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口
- 资源管理器的地址栏前面加上 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:
- 删除Java的安装目录
- 删除JAVA_HOME
- 删除path下关于Java的目录
- java -version
3.6、HelloWorld
- 新建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、可能遇到的问题
- 每个单词的大小不能出现问题,
- Java是大小写敏感的2.尽量使用英文
- 文件名和类名必须保证一致,并且首字母大写
- 符号使用的了中文
4、Java基础
4.1、注释
-
注释并不会被执行,是给程序员看的
-
书写注释是一个很好的习惯
-
Java中的注射有三中:
-
单行注释 ://
-
多行注释 : /* ---- */
-
文档注释 : / * *
* * */
-
4.2、标识符和关键字
4.2.1、标识符
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]
- 局部变量
- 全局变量
- 类变量
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()
- 一定要读取到有效字符才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才能将后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
- nextline()
- 以Enter为结束符,也就是说nextline()方法返回的是输入回车之前的所有字符
- 可以获得空白
6、顺序结构
..................
7、if选择结构
...................
8、Switch选择结构
..................
9、While循环
....................
10、DoWhile循环
,,,,,,,,,,,,,,,,,,,,,,,,,,
11、for循环
......................
12、break,continue语句
.......................
13、构造器详解
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下俩个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
作用:
- 使用new关键字,本质是在调用构造器
14、封装
我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
属性私有:get/set
15、继承
-
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
-
extands的意思是“扩展”。子类是父类的扩展。
-
JAVA中类只有单继承,没有多继承!
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
-
继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子
-
类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系.
16、Super详解
super是继承父类的构造方法
super注意点:
-
super调用父类的构造方法,必须在构造方法的第一个
-
super 必须只能出现在子类的方法或者构造方法中!
-
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类即可。
在程序中使用自定义异常类,大体可分为以下几个步骤:
- 创建自定义异常类。
- 在方法中通过throw关键字抛出异常对象。
- 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
- 在出现异常方法的调用者中捕获并处理异常。
经验总结:
- 处理运行时异常时,采用逻辑去合理规避同时辅助try-catchY处
上理 - 在多重catch块后面,可以加一个catch (Exception)来处理可能会被遗漏的异常√对于不确定的代码,也可以加上try-catch,处理潜在的异常
- 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出具体如何处理异常,要根据不同的业务需求和异常类型去决定
- 尽量添加finally语句块去释放占用的资源
本文来自博客园,作者:NotYourferry,转载请注明原文链接:https://www.cnblogs.com/pinghuimolu/p/15139085.html