导图社区 Java程序设计基础
Java 语言的语法与 C 语言和 C 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
编辑于2021-10-08 09:38:18Java 语言的语法与 C 语言和 C 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
Java程序设计基础、概念知识、了解其组成等内容。包含概述:特点、工作方式、开发工具、术语、源程序结构;面向对象:基本概念、三大支柱、相关内容、设计原则;字符串:可以被修改的字符串等内容。
马上又到软考、PMP的日子了,相信很多有志青年都已经准备的差不多了吧,或者也有裸考的呢,哈哈。这里整理了些相通的知识点,帮大家梳理下思路,仅供参考。不管是软考还是PMP,都要牢记项目管理的主线知识点,总结起来就是:10大知识领域,47个过程。
社区模板帮助中心,点此进入>>
Java 语言的语法与 C 语言和 C 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。
Java程序设计基础、概念知识、了解其组成等内容。包含概述:特点、工作方式、开发工具、术语、源程序结构;面向对象:基本概念、三大支柱、相关内容、设计原则;字符串:可以被修改的字符串等内容。
马上又到软考、PMP的日子了,相信很多有志青年都已经准备的差不多了吧,或者也有裸考的呢,哈哈。这里整理了些相通的知识点,帮大家梳理下思路,仅供参考。不管是软考还是PMP,都要牢记项目管理的主线知识点,总结起来就是:10大知识领域,47个过程。
Java程序设计基础
面向对象
基本概念
类
对象的蓝图和模板
类与类之间的关系
IS-A:继承
泛化
实现
HAS-A:关联
关联
聚合
合成
USE-A:依赖
定义类
[访问修饰符][修饰符]class类名[extends 父类][implements 接口1,接口2,...]{}
属性:数据抽象
方法:行为抽象
创建对象:new构造器() 构造器
对象
一切皆为对象
对象都有属性和行为
对象都是唯一的
对象都属于某个类
消息
调用对象的方法就是给对象发送了一个消息
一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务
三大支柱
封装
隐藏一切可隐藏的实现细节,只暴露最简单的编程接口
继承
从已有类创建新类的过程
提供继承信息的类叫父类(基类、超类)
子类可以继承到父类中piblic、protected的属性和方法 得到继承信息的类叫子类(派生类)
Java中的继承时单继承
Object类是所有类的父类
多态
定义
解释1:同样的引用调用同样的方法却做了不同的事情
解释2:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但对A系统来说时透明的。
实现
方法重写:不同的子类对父类的同一方法给出不同的实现版本
对象造型:用父类型的引用引用子类型的对象
相关内容
访问修饰符
类
public
默认
方法、属性、内部类
public
protected
默认
private
抽象类
如果一个类有抽象方法,这个类必须被声明为抽象类
抽象类中可以没有抽象方法,抽象类也可以有自己的构造器
抽象类不能实例化(不能创建对象)
强烈建议:将被继承的类设计成抽象类
接口
接口是约定:实现接口的类必须重写接口中所有方法,否则就要声明为抽象类
接口代表能力:实现了接口的类就具备了接口所描述的能力
接口是一种角色:一个类可以实现多个接口,一个接口也可以被多个类实现
Java中的接口
单方法接口:这个唯一的方法通常都是回调方法
ActionListener
Runnable
Comparable
标识接口:没有方法,但是表示了某种能力
Cloneable
Serializable
常量接口:这是接口最不正确的用法
内部类
相当于外部类中的一个属性
内部类可以访问外部类的私有成员
设计原则
单一职责原则
专业化
模块化
开闭原则
抽象是关键
封装可变性
依赖倒转原则
里氏替换原则
接口隔离原则
合成聚合复用原则
迪米特法则
字符串
String
创建字符串对象
s引用静态区的字符串字面量 String s=“Hello”;
s引用堆上的字符串对象 String s=new String(“Hello”);
字符串的方法
长度:length()
取字符:charAt(int)
变大/小写:toUpperCase()/toLowerCase()
连接:concat(String)
比较:equals(String)/compareTo(String)
判断开头/结尾:startsWith(String)/endWith(String)
模式匹配:indexOf(String,[int])/lastIndexOf(String,[int])
取子串:substring(int,[int])
修剪左右两边空白:trim()
替换:replace(String,String)/replaceAll(String,String)
拆分:split(String)
String代表的是不变字符串
可以被修改的字符串
StringBuilder
适用于单线程环境
StringBuffer
适用于多个线程操作同一个字符串的场景
方法
在指定位置插入字符串:insert(int,String)
删除指定位置的字符:delete(int,int)
倒转:reverse()
追加:append(String)
方法
[访问修饰符][修饰符]返回类型 方法名[参数列表][异常声明]
访问修饰符
public
protected
默认
private
修饰符
abstract
final
synchronized
修饰变量,变量变成常量
修饰类,类不能被继承
修饰方法,方法不能被重写
native
方法调用
静态方法:类名.方法名(实参列表)
非静态方法:对象.方法名(实参列表)
递归
数组
基本用法
数组的定义
数组的初始化
new
静态初始化
子主题
length属性
下标运算
Arrays工具类
sort:排序
toString:将数组变成字符串
copyOf:数组拷贝
equals:比较数组元素是否相同
二维数组
一个普通数组,每个元素又是一个数组
应用
表格
矩阵
2D游戏中的地图
棋盘
流程控制
循环结构
分类
while循环
do...while循环
for-each循环 for循环
相关关键字
break
continue
分支结构
if...else
switch...case...default
顺序结构
数据类型
基本类型
整数
byte
short
int
long
小数
float
double
char
boolean
枚举类型
enum
引用类型
String
数组
自定义的类或接口
基本语法
关键字
有特殊含义的单词(50)
能用的(48)
不能用的(2)
goto
const
标识符
你给类、接口、方法、变量等起的名字
命名规则
字母、数字、下划线和$,数字不能开头
大小写敏感
不能跟关键字和保留字(null、ture、false)冲突
见名知意
驼峰标识
类名每个单词首字母大写
变量和方法名从第二个单词开始每个单词首字母大写
命名常量全大写,多个单词用下划线隔开
运算符
分类
算术运算符
赋值运算符
关系运算符
短路运算符
条件运算符(三目运算符)
自增/自减运算符
正负号运算符
移位运算符
布尔运算符
位运算符
new
创建对象
instanceof
运行时类型识别
()
强制类型转换
改变运算优先级
[]
下标运算符
.
取成员运算符
优先级
搞不清楚优先级直接加()
结核性
从左向右
从右向左
赋值运算
自加自减
条件运算
正负号
字面量
整型字面量:100、100L
浮点型字面量:3.5、3.5F、3.123e2
字符字面量:'a'、'\t''\123'
布尔型字面量:true、false
引用字面量:null
类型字面量:String.class、int.class
分隔符
概述
特点
面向对象
平台可移植性
分布式
多线程
安全性
工作方式
开发工具
JDK
javac
java
javadoc
IDE
IntelliJ
Eclipse
NetBeans
术语
JDK
JRE
JVM
API
源程序结构
package
管理类
解决命名冲突
import
class
注释
行注释 //
块注释 /*...*/
文档注释 /**...*/
@author
@param
@return
@throws