百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

超全Java基础核心知识总结,这不拿捏?

yuyutoo 2025-03-03 20:52 5 浏览 0 评论

Java基础核心总结

Java 概述

什么是 Java2

Java 的特点

Java 开发环境

JDK

JRE

Java 开发环境配置

Java 基本语法

数据类型

基础语法

运算符

Java 执行控制流程

条件语句

if 条件语句

if...else 条件语句

if...else if 多分支语句

switch 多分支语句

循环语句

while 循环语句

do...while 循环

for 循环语句

跳转语句

break 语句

continue 语句

面向对象

类也是-种对象

对象的创建

属性和方法

构造方法

方法重载

方法的重写

初始化

类的初始化

成员初始化

构造器初始化

初始化顺序

数组初始化

对象的销毁

对象作用域

this 和 super

访问控制权限

继承

多态

组合

代理

向上转型

static

?nal

接口和抽象类

接口

抽象类

异常

认识 Exception

什么是 Throwable

常见的 Exception

与 Exception 有关的 Java 关键字

throws 和 throw

try 、?nally 、catch

什么是 Error

内部类

创建内部类

集合

Iterable 接口

顶层接口

ArrayList

Vector

LinkedList 类

Stack

HashSet

TreeSet

LinkedHashSet 类

PriorityQueue

HashMap

TreeMap 类

LinkedHashMap 类

Hashtable 类

IdentityHashMap 类

WeakHashMap 类

Collections 类

集合实现类特征图

泛形

泛型的使用

用泛型表示类

用泛型表示接口

泛型方法

泛型通配符

反射

Class 类

Field 类

Method 类

ClassLoader 类

枚举

枚举特性

枚举和普通类-样

枚举神秘之处

枚举类

I/O

File 类

基础 IO 类和相关方法

InputStream

OutputStream

Reader 类

Writer 类

InputStream 及其子类

OutputStream 及其子类

Reader 及其子类

Writer 及其子类

注解

关于 null 的几种处理方式

大小写敏感

null 是任何引用类型的初始值

null 只是-种特殊的值

使用 Null-Safe 方法

null 判断

关于思维导图

Java.IO

Java.lang

Java.math

Java.net

先来看一下本篇文章的思维导图吧,我会围绕下面这些内容进行讲解。内容很干,小伙伴们看完还希望不吝转发。

Java概述

什么是Java?

Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台。编程语言还比较好理解,那么什么是计算平台呢?

计算平台是在电脑中运行应用程序(软件) 的环境,包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构、操作系统、运行时库。

Java是快速,安全和可靠的。从笔记本电脑 到数据中心,从游戏机到科学超级计算机,从手机到互联网,Java无处不在! Java 主要分为三个版本

●JavaSE(J2SE(Java2 Platform Standard Edition, java平台标准版)

●JavaEE(J2EE)(Java 2 Platform,Enterprise Edition, java平台企业版)

●JavaME(J2ME)(Java 2 Platform Micro Edition, java平台微型版)。



Java 的特点

Java 是-门 面向对象 的编程语言

么是面向对象2 面向对象(Object Oriented) 是-种软件开发思想。它是对现实世界的-种抽象, 向对象会把相关的数据和方法组织为-个整体来看待。

相对的另外-种开发思想就是面向过程的开发思想,什么面向过程2 面向过程(Procedure Oriented) 是-种以过程为中心的编程思想。举个例子:比如你是个学生,你每天去上学需要做几件 事情2

起床、穿衣服、洗脸刷牙,吃饭,去学校。 -般是顺序性的完成-系列动作。

1 class student {

2 void student_wakeUp(){ . . .}

3 void student_cloth(){ . . .}

4 void student_wash(){ . . .}

5 void student_eating(){ . . .}

而面向对象可以把学生进行抽象,所以这个例子就会变为

1 class student(){

2 void wakeUp(){ . . .}

3 void cloth(){ . . .}

4 void wash(){ . . .}

5 void eating(){ . . .}

6 void gotoSchool(){ . . .} 7 }

可以不用严格按照顺序来执行每个动作。这是特点-。

  • Java 摒弃了 C++ 中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期,这是特征二。
  • Java 语言具有功能强大和简单易用两个特征,现在企业级开发,快速敏捷开发,尤其是各种框架的出现,使 Java 成为越来越火的-门语言。这是特点三。
  • Java 是一门静态语言,静态语言指的就是在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性, -旦类型确定后就不能再更改,比如下面这个例子。


1 public void foo() {

2 int x = 5;

3 boolean b = x; 4 }

静态语言主要有 Pascal, Perl, C/C++, JAVA, C#, Scala 等。

相对应的,动态语言没有任何特定的情况需要指定变量的类型,在运行时确定的数据类型。比如有Lisp, Perl, PythonRubyJavaScript 等。静态语言主要有Pascal, Perl, C/C++, JAVA, C#, Scala 等。

从设计的角度上来说,所有的语言都是设计用来把人类可读的代码转换为机器指令。动态语言是为了能 够让程序员提高编码效率,因此你可以使用更少的代码来实现功能。静态语言设计是用来让硬件执行的 更高效,因此需要程序员编写准确无误的代码,以此来让你的代码尽快的执行。从这个角度来说,静态 语言的执行效率要比动态语言高,速度更快。这是特点四。

  • Java 具有平台独立性和可移植性

Java 有-句非常著名的口号: Write once, run anywhere ,也就是-次编写、到处运行。为什么 Java 能够吹出这种牛批的口号来2核心就是 JVM 。我们知道,计算机应用程序和硬件之间会屏蔽很多 细节,它们之间依靠操作系统完成调度和协调,大致的体系结构如下

那么加上 Java 应用、 JVM 的体系结构会变为如下


Java 是跨平台的,已编译的 Java 程序可以在任何带有 JVM 的平台上运行。你可以在 Windows 平台 下编写代码,然后拿到 Linux 平台下运行,该如何实现呢2

首先你需要在应用中编写 Java 代码;

Eclipse 或者 javac 把 Java 代码编译为 .class 文件;

然后把你的 .class 文件打成 .jar 文件;

然后你的 .jar 文件就能够在 Windows 、Mac OS X 、Linux 系统下运行了。不同的操作系统有不同的 JVM 实现,切换平台时,不需要再次编译你的 Java 代码了。这是特点五。

  • Java 能够容易实现多线程

Java 是-门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如 Java 是如何实现多线程的。从 操作系统的角度来说,实现多线程的方式主要有下面这几种

在用户空间中实现多线程

在内核空间中实现多线程

在用户和内核空间中混合实现线程

而我认为 Java 应该是在 用户空间 实现的多线程,内核是感知不到 Java 存在多线程机制的。这是特点六。

  • Java具有高性能

我们编写的代码,经过 javac 编译器编译称为 字节码(bytecode) ,经过 JVM 内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分 JVM 的实现比如 Hotspot JVM 都提供了 JIT(Just -In -Time) 编译器,也就是通常所说的动态编译器, JIT 能够在运行时将热点代 码编译机器码,这种方式运行效率比较高,这是编译执行。所以 Java 不仅仅只是-种解释执行的语 言。这是特点七。

  • Java 语言具有健壮性

Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。这也是 Java 与 C 语言的重要区别。这是特点八。

  • Java 很容易开发分布式项目

Java 语言支持 Internet 应用的开发, Java 中有 net api,它提供了用于网络应用编程的类库,包括URL 、URLConnection 、Socket 、ServerSocket等。 Java的 RMI (远程方法激活) 机制也是开发分布式应用的重要手段。这是特点九。

Java 开发环境

JDK

JDK (Java Development Kit) 称为 Java 开发包或 Java 开发工具,是-个编写 Java 的 Applet 小程序和应用程序的程序开发环境。 JDK是整个Java的核心,包括了 Java运行环境 (Java Runtime Environment) , -些 Java 工具 Java 的核心类库 (Java API)


们可以认真研究-下这张图,它几乎包括了 Java 中所有的概念,我使用的是 jdk1 .8 ,可以点进去 Description of Java Conceptual Diagram , 可以发现这里面包括了所有关于 Java 的描述

Oracle 提供了两种 Java 平台的实现, -种是我们上面说的 JDK , Java 开发标准工具包, -种是 JRE,叫做Java Runtime Environment , Java 运行时环境。 JDK 的功能要比 JRE 全很多。

JRE

JRE 是个运行环境, JDK 是个开发环境。因此写 Java 程序的时候需要 JDK,而运行 Java 程序的时候 就需要JRE。而 JDK 里面已经包含了JRE,因此只要安装了JDK,就可以编辑 Java 程序,也可以正常 运行 Java 程序。但由于 JDK 包含了许多与运行无关的内容,占用的空间较大,因此运行普通的 Java 程序无须安装 JDK,而只需要安装 JRE 即可。

Java 开发环境配置

这个地方不再多说了,网上有很多教程配置的资料可供参考。

Java 基本语法

在配置完 Java 开发环境,并下载 Java 开发工具 (Eclipse 、IDEA 等)后,就可以写 Java 代码了,因 为本篇文章是从头梳理 Java 体系,所以有必要从基础的概念开始谈起。

数据类型

在 Java 中,数据类型只有 四类八种

  • 整数型: byte 、short 、int 、long

byte 也就是字节, 1 byte = 8 bits , byte 的默认值是 0 ;

short 占用两个字节,也就是 16 位, 1 short = 16 bits,它的默认值也是 0 ;

int 占用四个字节,也就是 32 位, 1 int = 32 bits,默认值是 0 ;

long 占用八个字节,也就是 64 位, 1 long = 64 bits,默认值是 0L ;

所以整数型的占用字节大小空间为 long > int > short > byte

  • 浮点型

浮点型有两种数据类型: ?oat 和 double

?oat 是单精度浮点型,占用 4 位, 1 ?oat = 32 bits,默认值是 0.0f ;

double 是双精度浮点型,占用 8 位, 1 double = 64 bits,默认值是 0.0d ;

  • 字符型

字符型就是 char , char 类型是-个单-的 16 位 Unicode 字符,最小值是 \u0000 (也就是 0 ) , 最大值是 \uffff (即为 65535) , char 数据类型可以存储任何字符,例如 char a = 'A'。

  • 布尔型

布尔型指的就是 boolean , boolean 只有两种值, true 或者是 false,只表示 1 位,默认值是 false。以上 x 位 都指的是在内存中的占用。


基础语法

  • 大小写敏感: Java 是对大小写敏感的语言,例如 Hello 与 hello 是不同的,这其实就是 Java 的字

符串表示方式

  • 类名:对于所有的类来说,首字母应该大写,例如 MyFirstClass

包名:包名应该尽量保证小写,例如 my .first .package

  • 方法名:方法名首字母需要小写,后面每个单词字母都需要大写,例如 myFirstMethod()

运算符

运算符不只 Java 中有,其他语言也有运算符,运算符是-些特殊的符号,主要用于数学函数、 -些类 型的赋值语句和逻辑比较方面,我们就以 Java 为例,来看-下运算符。

  • 赋值运算符

赋值运算符使用操作符 = 来表示,它的意思是把 = 号右边的值复制给左边,右边的值可以是任何常 数、变量或者表达式,但左边的值必须是-个明确的,已经定义的变量。比如 int a = 4 是对于对象来说,复制的不是对象的值,而是对象的引用,所以如果说将-个对象复制给另-个对

象,实际上是将一个对象的引用赋值给另一个对象 。

  • 算数运算符

算数运算符就和数学中的数值计算差不多,主要有

算数运算符需要注意的就是 优先级问题 ,当-个表达式中存在多个操作符时,操作符的优先级顺序就 决定了计算顺序,最简单的规则就是先乘除后加减, () 的优先级最高,没必要记住所有的优先级顺 序,不确定的直接用 () 就可以了。

  • 自增、自减运算符

这个就不文字解释了,解释不如直接看例子明白

1 int a = 5;

2 b = ++a;

3 c = a++;

  • 比较运算符

比较运算符用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。

比较运算符的运算结果是 boolean 型。当运算符对应的关系成立时,运算的结果为 true,否则为 false 。比较运算符共有 6 个,通常作为判断的依据用于条件语句中。

  • 逻辑运算符

逻辑运算符主要有三种,与、或、非

下面是逻辑运算符对应的 true/false 符号表

  • 按位运算符

按位运算符用来操作整数基本类型中的每个 比特 位,也就是二进制位。按位操作符会对两个参数中对 应的位执行布尔代数运算,并最终生成-个结果。

如果进行比较的双方是数字的话,那么进行比较就会变为按位运算。

按位与:按位进行与运算 (AND),两个操作数中位都为1,结果才为1,否则结果为0。需要首先把比 较双方转换成二进制再按每个位进行比较

按位或:按位进行或运算 (OR),两个位只要有-个为1,那么结果就是1,否则就为0。 按位非:按位进行异或运算 (XOR),如果位为0,结果是1,如果位为1,结果是0。

按位异或:按位进行取反运算 (NOT),两个操作数的位中,相同则结果为0,不同则结果为1。

  • 移位运算符

移位运算符用来将操作数向某个方向(向左或者右)移动指定的二进制位数。

  • 三元运算符

三元运算符是类似 if . . .else . . . 这种的操作符,语法为: 条件表达式2表达式 1:表达式 2。问号前面的位置是判断的条件,判断结果为布尔型,为 true 时调用表达式 1,为 false 时调用表达式 2。

由于内容过长,完整版java核心知识PDF总结的以及java教程已经打包好了,

相关推荐

自卑的人容易患抑郁症吗?(自卑会导致抑郁吗)

Filephoto[Photo/IC]Lowself-esteemmakesusfeelbadaboutourselves.Butdidyouknowthatovert...

中考典型同(近)义词组(同义词考题)

中考典型同(近)义词组...

WPF 消息传递简明教程(wpf messagebox.show)

...

BroadcastReceiver的原理和使用(broadcast-suppression)

一、使用中注意的几点1.动态注册、静态注册的优先级在AndroidManifest.xml中静态注册的receiver比在代码中用registerReceiver动态注册的优先级要低。发送方在send...

Arduino通过串口透传ESP 13板与java程序交互

ESP13---是一个无线板子,配置通过热点通信Arduino通过串口透传ESP13板与java程序交互...

zookeeper的Leader选举源码解析(zookeeper角色选举角色包括)

作者:京东物流梁吉超zookeeper是一个分布式服务框架,主要解决分布式应用中常见的多种数据问题,例如集群管理,状态同步等。为解决这些问题zookeeper需要Leader选举进行保障数据的强一致...

接待外国人英文口语(接待外国友人的英语口语对话)

接待外国人英文口语询问访客身份:  MayIhaveyourname,please?  请问您贵姓?  Whatcompanyareyoufrom?  您是哪个公司的?  Could...

一文深入理解AP架构Nacos注册原理

Nacos简介Nacos是一款阿里巴巴开源用于管理分布式微服务的中间件,能够帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理等。这篇文章主要剖析一下Nacos作为注册中心时其服务注册与...

Android面试宝典之终极大招(android面试及答案)

以下内容来自兆隆IT云学院就业部,根据多年成功就业服务经验,以及职业素养课程部分内容,归纳总结:18.请描述一下Intent和IntentFilter。Android中通过Intent...

除了Crontab,Swoole Timer也可以实现定时任务的

一般的定时器是怎么实现的呢?我总结如下:1.使用Crontab工具,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;2.ignore_user_abort()和set_time_li...

Spark源码阅读:DataFrame.collect 作业提交流程思维导图

本文分为两个部分:作业提交流程思维导图关键函数列表作业提交流程思维导图...

使用Xamarin和Visual Studio开发Android可穿戴设备应用

搭建开发环境我们需要做的第一件事情是安装必要的工具。因此,你需要首先安装VisualStudio。如果您使用的是VisualStudio2010,2012或2013,那么请确保它是一个专业版本或...

Android开发者必知的5个开源库(android 开发相关源码精编解析)

过去的时间里,Android开发逐步走向成熟,一个个与Android相关的开发工具也层出不穷。不过,在面对各种新鲜事物时,不要忘了那些我们每天使用的大量开源库。在这里,向大家介绍的就是,在这个任劳任怨...

Android事件总线还能怎么玩?(android实现事件处理的步骤)

顾名思义,AndroidEventBus是一个Android平台的事件总线框架,它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使我们的代码...

Android 开发中文引导-应用小部件

应用小部件是可以嵌入其它应用(例如主屏幕)并收到定期更新的微型应用视图。这些视图在用户界面中被叫做小部件,并可以用应用小部件提供者发布。可以容纳其他应用部件的应用组件叫做应用部件的宿主(1)。下面的截...

取消回复欢迎 发表评论: