Java基础知识的概括

来源:互联网 发布:办公软件英文怎么说 编辑:程序博客网 时间:2024/09/21 09:20

Java的基础知识


1. 对Java的认知

Java简单来说它的作用就是作为编程人员编程语言,开发项目的开发工具包.
– 跨平台?
什么是跨平台?当我第一次听见时,根据字面理解,认为可以从一个平台跨越到另一个平台,但专业一点的说法是,相同的代码源可以在不同的平台上使用(一处编译,到处运行).

2.Java的运行原理

请看下图:
Java的运行原理

通过这张图,还是可以很明确的看出Java的运行轨迹的:
首先通过我们这些程序员写的代码(源代码.java文件)通过javac编译器转变成字节码文件,字节码只有虚拟机才能看懂,但是,每个操作系统都有它各自本身的虚拟机,所以字节码文件通过不同的虚拟机到达各自的操作系统,最后通过每个平台的解释器,将其转为机器码,并发给机器.这就是Java的运行时的大概旅程.

Java开发工具包

在上面我们提到了Java是开发人员的开发工具包,那么所谓的工具包里又有什么呢?
– JRE:Java运行时的环境,其中最重要的是JVM
– Java的开发工具:javac,API,javadoc
–核心类库API

类和对象

类和对象之间的关系:
类就是对象的特征的母亲对象则是类的实现

类包括了基本属性和行为方法.
面向对象和面向过程的区别:
面向过程编程是指完成一件事,不会留下任何”遗产”,理解为一次性.
面向对象则是要将这件事情中的实体对象抽象出来,形成类,在通过类的对象之间发生的关系去实现的

标识符和分隔符

Java的标识符和JavaScript的命名规范相似就不多介绍了
分隔符在Java中还是很常见的
列如花括号中肯定是一个代码块,一个整体,分号代表了结束,方括号用于数组,圆括号用于形参,原点则是调用类or对象的属性和方法

数据类型

在介绍数据类型之前,首先说一下
Java是数据类型语言,什么是强数据类型,还记得JavaScript是什么类型的吗?是类型语言.举个列子方便快速看懂:

JS: var a = 1;
Java: String a = “xxx”;
Java: Integer a = 1;

看到以上两个列子就很清晰看出区别了,JS中在定义变量时,没有强制性的给他指定数据类型,而Java则相反.

变量:通俗的来说就是个数据起了个名字
数据类型:就是给数据在内存中进行存储和运算
变量赋值:

int a = 10;

数据类型有哪些?
数值型,字符型,布尔型

数值型:整数型和浮点型 byte,short,int,long;float,double


字符型:用单引号表示的,Java用16字符的Unicode作为编码方式


布尔型:真和假/true和false

类型之间是可以小转大的转化的,但大转小则不行

直接量

int a = 5;这个5就是个直接量

在这里说一下String
String类的对象被创建出来后是不能被改变的,当给他第一次赋值时Java会使用常量池 来进行缓存这个字符串,到后面如果用到这个字符串,则直接调用常量池里的这个字符串,常量池里不会缓存两个相同的字符串

运算符

运算符中有算术运算符(这里要注意自增和自减,要注意++在前还是在后,如果在前就先加后结果,在后就先结果,后加,反正最后都是要加)
赋值运算符没什么好说的,就是使一个赋值变的有逼格一点,
比较运算符返回的就是true和false,
逻辑运算符&&只要有一个假那就是假,||又一个真就是真
优先级问题,圆括号就是大佬,要先执行

流程控制

分3部分,顺序结构,判断结构,循环结构

顺序结构没什么好说的,就是自上而下的运行

判断结构也叫分支结构

有if结构和switch结构,这个也挺好理解,毕竟和JS的if条件语句和switch语句差不多,switch中,每一个case中要有break;已防止它自动跳进下一个case

循环结构

while循环,for循环,do()while{}循环

break和continue的区别?
break是直接跳出当前的循环,后面的不会在执行了
continue则是只跳出当前循环的一个迭代,后面的继续执行

数组结构

数组里可以存储多个数据,但数据的类型必须相同.
数组再定义的时候就确定了长度大小

int[] arry = {1,2,3,4,5};

可以通过for循环进行遍历,也可以通过for循环进行赋值
foreach也可以遍历数组,但是对元素进行修改,则只能使用for循环

面向对象编程详细

类也叫类类型或引用数据类型.
通过类创建的实体也称之为对象之前也提到,类是一群对象的特征母版,包含其属性和方法
简单点说类也可以说是对象的抽象
类最基本的要素:静态属性和动态对象
类的定义三大部件:构造器,方法,成员变量

构造器的作用就是创建对象,如果在定义类中,没有定义构造器,那么系统会给一个空的构造器

构造的重载意思是从一个构造器调用另一个构造器,可以使用this(),必须放在句首

方法:有void和String两种,void没有返回值,直接后台输出,而String则是由返回值的.

修饰符:不可以同时出现,在不同的情况下使用不同的修饰符


面向对象的编程有三大特征:封装,继承和多态
那么接下来我们就来看一下这三大特征的一些特点和概要

封装

封装就是就是将我们的变量隐藏起来,是外部人员不能轻易的更改我们的信息,但是总要留点线索,来暴露给外部,也就是get和set,两者后跟首字母大写.
这里写图片描述

使用包(importan进行引入)

继承

语法:[修饰符] class SubClass extends SuperClass {
// 类定义部分
}
extends就是子类继承了父类的所有成员变量和方法(但是成员的修饰词如果是private则,无法访问)
在这里要说到重写,当继承了父类的所有”财产”之后,子类可以重写父类的方法,但是方法名和参数必须相同(两同两小,一大的原则)

super()的意思是调用出父类中被子类所覆盖的方法

多态

多态最常用的场景就是子类重写父类的方法,

包装类

对于实体对象的类成员定义属性时,我们一般使用基本数据类型的包装类.
如果不使用包装类,在使用基本数据类型时,成员变量会有默认值,但如果使用包装类,则不会有初始化值,定义的为null

java中的重载和重写有什么区别?

重载就是一个类中可以创建多个方法,具有相同的名字,但是参数不同,在调用时,也是通过参数个数来决定具体使用哪个方法


重写是对父类的继承的情况下,重新定义,器方法名和参数相同

抽象类

首先先说明一下,在抽象方法和抽象类都是使用abstract修饰的.
抽象类是无法实例化的,也就是无法创建对象,只能作为父类被继承使用
如果用了static或private就不能使用abstract修饰

接口

接口使用interface定义,接口可以支撑多继承,使用extends,最后用implements去实现接口

集合框架

集合框架分Collection和Map两大接口
一般Collection中有List(有序集合),Set(无序集合),List和Set都是接口,而Map则是key-value结构

一般使用List的时候要用泛型去强制约束.

一些常用的:
add()插入
遍历一般使用for循环,foreach循环,迭代器Iterator
但要删除元素时,只能用迭代
获取key的value
Value get(key)
遍历Map,首先先获取key集合,然后通过遍历key获取value

常用类

学习常用类,首先要学会如何查看API
类的方法在API中都有提示
在这里就不多举例说明了

异常处理

异常处理分两种,用户的不正确输入,本身系统的问题
一般使用try..catch和throws来处理异常,
throw是自定义创建一个异常抛出

单列模式

顾名思义,就是一个类只有一个对象,外部使用该类的对象,通过调用一个类的方法去实现一般分为饱汉式和饿汉式

JDBC

Java与数据库的连接
JDBC的开发步骤:
1. 选择数据库,加载数据库驱动
2. 连接数据库
3. 创建数据库查询
4. 获取查询结果
5. 关闭查询和连接

原创粉丝点击