温故而知新,19646字Java基础知识梳理

本文详述了Java的基础知识,包括入门、程序设计、流程控制、字符串处理、数字和日期处理、数组与排序算法、类与对象、封装、继承和多态、异常处理、集合与泛型、枚举、反射机制、输入输出流、多线程编程、网络编程以及图形用户界面。文章强调了基础知识的重要性,并提供了面试必备的Java八股文和相关学习资源。
摘要由CSDN通过智能技术生成

前言

有些同学可能会觉得奇怪,为什么会写这么一篇文章,Java基础不是大学就学过了吗,就这呀,这有什么好写的?

但是从事开发越久才越知道基础有多重要,不止Java基础,还有计算机网络基础与操作系统基础,这些编程的底层原理你真的搞清楚了吗?太多人只是不明就里的写着业务代码,码农这个词原来以为是自嘲,但对于很多程序员来说,却是真实写照,只不过手里的锄头换成了电脑而已。很多应届生去面试之前也会疯狂刷所谓的项目经验,当然了,不是说项目不重要,只是有点本末倒置了,万丈高楼平地起,基础不牢早晚有你头疼的时候。

最近有面试的家人们基础不好的话最好是赶紧补一补基础,特别是准备秋招的应届生,一个刚毕业的学生哪来那么多乱七八糟的项目经验,太假了,面试官对于应届生的要求是有没有培养价值,这个潜力怎么看呢?看的就是你的基础。

文末有2021年7月份最新Java面试八股文,需要的可以自行领取哦!

这篇文章只梳理Java基础,计算机跟操作系统,后面有时间也会单独写。我整理了一些经典的学习书籍电子档,毕竟程序员的书实在是太贵了,不可能每本都买实体

image

需要的同学点击传送门
就可以领取,无偿分享。

目录

  • Java入门基础及环境搭建
  • Java程序设计基础
  • Java流程控制语句
  • Java字符串处理
  • Java数字和日期处理
  • Java数组和基本排序算法
  • Java类和对象
  • Java类的封装、继承和多态
  • Java异常处理
  • Java集合、泛型和枚举
  • Java反射机制
  • Java输入输出流和文件操作
  • Java多线程编程
  • Java网络编程
  • Java图形用户界面

一、Java入门基础及环境搭建

  1. 主要阐述Java语言的历史和面向对象设计的特点,Java语言在1995年由Sun公司推出,最后在2009年被Oracle收购,目前用得多得版本是JDK1.7和1.8。
  2. 阐述面向对象语言设计的思想,比较面向对象设计和面向过程设计的差异。
  3. Java JDK的下载和安装,以及环境变量的配置,使用记事本编写“Hello world”程序,然后使用CMD命令行编译和执行,正式入门Java语言的开发。
  4. 讲解Java程序语言的基本要素和编程规范,如何使用流行的IDE来编写程序,讲解NetBeans、Eclipse和IntelliJ IDEA等开发工具的安装和使用,如何编写、设置以及调试代码。

二、Java程序设计基础

1、讲解常量和变量的概念,声明方式和作用域。

常量通常也被称为“final变量”。常量在整个程序中只能被赋值一次。在为所有对象共享值时,常量是非常有用的。在Java语言中声明一个常量,除了要指定数据类型外,还需要通过final关键字进行限定。声明常量的标准语法格式如下:

final 数据类型 常量名称(=值)

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier [ = value][, identifier [= value] …] ;

格式说明:type为Java数据类型;identifier是变量名;可以使用逗号隔开来声明多个同类型变量。

int a, b, c;             // 声明三个int型整数:a、b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22;             // 声明并初始化z
String s = "runoob";     // 声明并初始化字符串s
double pi = 3.14159;     // 声明了双精度浮点型变量 pi
char x = 'x';            // 声明变量x的值是字符 'x'

变量虽然是由程序员所命名的,但是变量的命名并不是任意的,需要遵循一定的规则:

  • 变量名必须是一个有效的标识符
  • 变量名不能重复
  • 应选择有意义的单词作为变量名。在命名变量名时,最好能通过变量名看出变量的内容,这样既能方便读者对程序的理解,增加可读性,又方便程序的维护,减轻程序维护人员的工作负担。

2、8种基本数据类型的定义和概念。

[图片上传失败…(image-6eceb6-1627547262466)]

3、Java运算符的介绍,诸如算术、赋值、逻辑、关系、自增和自减、位和条件运算符,还包括运算符计算优先级的说明。

  • 算数运算符

算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),完成整数型和浮点型数据的算术运算。关系运算符

image

  • 关系运算符

关系运算符用来比较两个值,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6种

  • 逻辑运算符

逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。

  • 位运算符

位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)和无符号右移(>>>)。

  • 赋值运算符

赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。

除了“=”,其它的都是特殊的赋值运算符,以“+=”为例,x += 3就相当于x = x + 3,首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可依此类推。

条件运算符

条件运算符( ? : )也称为 “三元运算符”或“三目运算符”。

语法形式:布尔表达式 ? 表达式1 :表达式2。

运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值。

运算符的优先次序

在对一个表达式进行计算时,如果表达式中含有多种运算符,则要安运算符的优先次序一次从高向低进行。运算符的优先次序如下:

image

4、Java基本数据类型的转换。

image

  • 自动类型转换

自动类型转换是指:数字表示范围小的数据类型可以自动转换成范围大的数据类型。

如:

long l = 100;

int i = 200;
long ll = i;

具体自动转换如如下图所示。

image

强制类型转换

强制类型转换我们再清楚不过了,即强制显示的把一个数据类型转换为另外一种数据类型。

如:

short s = 199;
int i = s;// 199

double d = 10.24;
long ll = (long) d;// 10

以上的转换结果都在我们的预期之内,属于正常的转换和丢失精度的情况,下面的例子就一样属于数据溢出的情况。

int ii = 300;
byte b = (byte)ii;

300 已经超出了 byte 类型表示的范围,所以会转换成一个毫无意义的数字。

  • 类型提升

所谓类型提升就是指在多种不同数据类型的表达式中,类型会自动向范围表示大的值的数据类型提升。

把上面的溢出的例子再改下。

long count = 100000000;
int price = 1999;
long totalPrice = price * count;

price 为 int 型,count 为 long 型,运算结果为 long 型,运算结果正常,没有出现溢出的情况。

三、Java流程控制语句

程序的结构分类:
  顺序结构:按照写代码的顺序 一次执行
  选择结构:根据条件的不同有选择的执行不同的代码
  循环结构:在一定条件下 反复执行某一片代码

选择结构:

也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种 if结构 switch结构

if分为三种格式 :

if的第一种格式 if(条件){
    语句块
  } 执行流程: 先判断条件, 如果为真 则语句块执行, 否则 语句块不执行

代码演示:

 1 public static void main(String[] args) {
 2         System.out.println("开始");
 3         // 定义两个变量
 4         int a = 10;
 5         int b = 20;
 6 
 7         if (a == b) {
 8             System.out.println("a等于b");
 9         }
10 
11         int c = 10;
12         if (a == c) {
13             System.out.println("a等于c");
14         }
15 
16         System.out.println("结束");
17     }

if的第二种格式:

if(条件){
  语句块 1
}else{
  语句块2
}

执行流程: 先判断条件的真假, 如果为真 则只执行语句块1, 否则, 只执行语句块2
代码演示:

 1 public static void main(String[] args) {
 2         System.out.println("开始");
 3         // 判断给定的数据是奇数还是偶数
 4         // 定义变量
 5         int a = 100;
 6         // 给a重新赋值
 7         a = 99;
 8 
 9         if (a % 2 == 0) {
10             System.out.println("a是偶数");
11         } else {
12             System.out.println("a是奇数");
13         }
14 
15         System.out.println("结束");
16     }

if语句的第三种格式:

if(条件1){
  语句块1
}else if(条件2){
  语句块2
}else if(条件3){
  语句块3
}

else if(条件n){
  语句块n
}else{
  语句块n+1
}

执行流程: 先判断条件1 ,如果为真 则执行语句块1,执行完毕,跳出整个if结构执行if下面的语句, 否则判断条件2,
如果条件2为真,则执行语句块2,执行完毕跳出
整个if结构执行if下面的语句, 如果条件2也为假,则判断条件3 ,如果为真… 如果判断到条件n都为假,
则执行else中的语句块n+1 代码演示: x和y的关系满足如下:
x>=3 y = 2x + 1;
-1<=x<3 y =

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值