文章目录

  • 第一章、java环境搭建
    • 1.1、Java介绍
      • 1.1.1、 Java开发平台
      • 1.1.2、 Java开发环境搭建
      • 1.1.3 、Java专业术语
      • 1.1.4、 第一个Java程序
      • 1.1.5、 练习
    • 1.2、main方法
    • 1.3、变量
      • 1.3.1、 变量介绍
      • 1.3.2 、练习
      • 1.3.3、 变量名规范
      • 1.3.4 、注释
    • 1.4、数据类型
      • 1.4.1、 整数
      • 1.4.2、 直接量
      • 1.4.3 、小数
      • 1.4.4、 布尔类型
      • 1.4.5、 字符
    • 1.5、数据类型转换
  • 第二章、运算符
    • 2.1、算数运算符
    • 2.2、比较运算符
    • 2.3、自增减运算符
    • 2.4、逻辑运算符
    • 2.5、三目运算符
    • 2.6、赋值运算符
    • 2.7、运算符优先级
  • 第三章、分支结构
    • 3.1、流程控制介绍
    • 3.2、单路分支
    • 3.3、双路分支
    • 3.4、多路分支
    • 3.5、switch...case多路分支
    • 3.6、练习
  • 第 4 章、循环结构
    • 4.1、循环介绍
    • 4.2、for循环
    • 4.3、课堂练习:
    • 4.4、无限循环
    • 4.5、while循环
    • 4.6、do...while循环
    • 4.7、break、continue
    • 4.8、练习:
  • 第 5 章、嵌套循环
    • 5.1、打印矩形
    • 5.2、打印三角形
    • 5.3、打印图形
    • 5.4、练习:
  • 第 6 章、数组
    • 6.1、数组介绍
    • 6.2、数组相关概念
    • 6.3、声明数组
      • 6.3.1、 动态初始化数组
      • 6.3.2、 静态初始化数组
    • 6.4、数组操作
      • 6.4.1、练习:
    • 6.5、练习
    • 6.6、多维数组
    • 6.7、数组特点
    • 6.8、练习
  • 第 7 章、数组练习
    • 7.1、二分查找
    • 7.2、冒泡排序
      • 7.2.1、 冒泡排序流程:
      • 7.2.2 、优化:
    • 7.3、数组练习
  • 第 8 章、面向对象(一)
  • 8.1、包
      • 8.2.1、 包的介绍
      • 8.2.2、 创建包:
      • 8.2.3、包导入
      • 8.2.4、 系统包
    • 8.2eclipse、安装与使用
    • 8.3、类与对象
      • 8.3.1、 定义类
      • 8.3.2、 实例化对象
      • 8.3.3、 引用的概念
      • 8.3.4、 访问对象成员
    • 8.4、内存空间
    • 8.5、null
  • 第 9 章、面向对象(二)
    • 9.1、成员方法介绍
    • 9.2、形参
    • 9.3、实参
    • 9.4、返回值
    • 9.5、局部变量
    • 9.6、方法传参细节
    • 9.7、构造方法
    • 9.8、this关键字
  • 第 10 章、面向对象(三)
    • 10.1、方法重载
    • 10.2、方法重载的意义
    • 10.3、递归
    • 10.4、递归练习
    • 10.5、静态成员介绍
    • 10.6、注意事项
    • 10.7、静态代码块
  • 第 11 章、内部类与Java常用API(一)
    • 11.1、内部类介绍
    • 11.2、匿名内部类
    • 11.3、Java常用的包
    • 11.4、Object类
    • 11.5、包装类
    • 11.6、装箱、拆箱
  • 第 12 章、Java 常用API(二)
    • 12.1、Integer类
    • 12.2、java.math包
    • 12.3、String类
    • 练习
    • 12.4、String缓冲类
    • 12.5、Date类
    • 12.6、SimpleDateFormat类
    • 练习
    • 12.7、Calendar类
      • 12.7.1、 获取方式
      • 12.7.2、 常用方法:
      • 12.7.3、 get/set方法
      • 12.7.4、 add方法
      • 12.7.5、 getTime方法
  • 第 13 章、集合概述
    • 13.1、集合介绍
    • 13.2、集合分类
    • 13.3、泛型
    • 13.4、泛型标识符
    • 13.5、Collection集合常用方法
    • 13.6、Collection集合遍历
      • 13.6.1、 迭代器
      • 13.6.2、 增强版for循环
    • 13.7、练习
  • 第 14 章、List集合
    • 14.1、List集合概述
    • 14.2、面试题
    • 14.3、ArrayList
    • 14.4、LinkedList
    • 14.5、List接口方法
  • 第 15 章、Set集合
    • 15.1、Set接口概述
    • 15.2、HashSet
    • 15.3、自然排序
    • 15.4、自定义排序
    • 练习:
  • 第 16 章、Map接口
    • 16.1、Map集合介绍
    • 16.2、Map集合常用的方法:
    • 16.3、课堂练习:
    • 16.4、HashMap存储结构
  • 第 17 章、学生信息管理系统![在这里插入图片描述](https://img-blog.csdnimg.cn/016f21a19cbd49258bc251dbdfa3b352.png)
    • 17.1、声明Student类
    • 17.2、搭建学生管理系统的界面
    • 17.3、添加学生
    • 17.4、查询所有学生
    • 17.5、修改学生信息
    • 17.6、删除学生
    • 17.7、退出管理系统

第一章、java环境搭建

1.1、Java介绍

1.1.1、 Java开发平台

Java SE(java standard edition),java平台标准版,主要编写桌面应用程序
Java EE(java enterprise edition),java平台企业版,用于构建企业级应用。所谓企业级应用是指那些为商业组织、大型企业而创建的应用系统,例如:电信的“计费系统”、银行的“网银系统”、企业中的“客户关系管理系统”等等。
Java ME(java micro edition), java平台微型版,随着Android智能平台的迅速普及,java me已经走向淘汰

1.1.2、 Java开发环境搭建

jdk,Java Development Kit,Java开发工具包,里面包含Java开发用到的工具类
jre,Java Runtime Environment,Java运行时环境,运行java代码所需要的环境

下载:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
先卸载:
控制面板----卸载程序—

安装:
注意:安装路径不能有中文、特殊字符(中文字符)


安装jre

测试一下:
打开cmd控制台:
右击开始按钮----运行----输入cmd----确定

说明windows操作系统没有找到java开发环境

需要配置环境变量
操作系统在运行时,需要的一些配置参数,默认情况下,当我们运行一个软件时,会先去环境变量的Path中找该软件所在的目录
配置环境变量:

如果提示下面的内容,说明安装成功

1.1.3 、Java专业术语

  • jdk,Java Development Kit,Java开发工具包,里面包含Java开发用到的工具类
  • jre,Java Runtime Environment,Java运行时环境,运行java代码所需要的环境
  • JVM,Java Virtual Machine,Java虚拟机
  • javac.exe,java编译器,用于将高级源代码文件转换为字节码文件
  • java.exe,java解释执行器,用于将字节码文件通过java虚拟机解释并执行起来

1.1.4、 第一个Java程序

编写java代码的步骤:

1.新建记事本文档,将文件名修改为:xxx.java
注意:java的文件名要采用驼峰法的命名,每个单词的首字母必须大写

2.使用记事本打开该文件,并编写HelloWorld类

3.先编译
将高级的源代码解释成计算机能够识别的字节码文件(二进制文件)
javac 文件名

4.执行执行编译的结果
java 文件名(不包含后缀)

1.1.5、 练习

1.卸载java开发环境、删除java环境变量、删除创建的文件夹

2.重新安装java开发环境
要求:
jdk安装到D:/java_env/java8/jdk目录下
jre安装到D:/java_env/java8/jre目录下
如果没有D盘,把上述路径中的D改为C

然后添加到环境变量

3. 创建Dog类文件,并在该文件中输出”小狗汪汪叫”

1.2、main方法

1.语法格式
public static void main(String[] args){

}

1.3、变量

1.3.1、 变量介绍

度,尺子
量,容器
衡,称,重量单位

量,古代的一种容器

在java中,变量就是存储数据的容器,由于该容器的内容可以变化,所以称为变量

1 + 1 = ?
a + b = ? a代表数字的:是一个变量

变量,本质上就是在内存中申请的一块区域,通过变量名找到这个区域
由于变量中存储的内容不同,所占内存空间的大小也就不一样,在java中通过数据类型约束内存空间的大小、结构
例如:
String 类型表示字符串,只能存储字符类型的数据
int表示整数类型,只能存储整数类型的数据
double表示小数,只能存储小数类型的数据

1 ==> 1
2 == 10
3 == 11
4 == 100
255 == 11111111
Int类型 表示一般用的整数 ==> 32位 , 255255255*255


声明变量语法:
数据类型 变量名 = 初始值;

初始值可以省略
=,表示赋值运算符,表示将将=右边的数据存储到左边的容器(变量)里面
例如:
int age = 20; 表示将20存储到age变量

输出变量里面的内容
System.out.println(age);

1.3.2 、练习

有3瓶酒,1瓶红酒,1瓶白酒,要求使用java变量的相关知识,将白酒和红酒对调一下

1.3.3、 变量名规范

变量名采用小写,尽量使用英文单词,或拼音代替
变量名不要使用java中的关键字,例如:public、class、void等
望文知意,通过变量名知道变量的作用、意义

1.3.4 、注释

java中的注释分为:
注释是给程序员看的,对代码进行说明,java编译器会忽略注释的内容

单行注释: // 注释的内容(// 和 注释内容之间有且只有一个空格)
多行注释: /* 注释的内容 */

1.4、数据类型

在java中数据类型,有2种:
1.基本数据类型:包括:整数、小数、布尔、字符
2.引用数据类型(数组、对象、接口等)

1.4.1、 整数

了解计算机中单位:
1TB = 1024GB
1GB = 1024MB
1MB= 1024KB(Kilo千)
1KB =1024Byte(字节)

byte,在内存中占1个字节(Byte),表示范围:-128 ~ 127
short,在内存中占2个字节,大概3万多
int,在内存中占4个字节,20多亿
long,在内存中占8个字节

通常int使用比较多

1.4.2、 直接量

byte b1 = -128, -128称为直接量
对于整数类型的直接量,默认是int类型,而int类型表示的范围:20多亿
如果希望表达的是Long类型的话,在直接量的后面加上L 或 l(小写的L)

1.4.3 、小数

float,占4个字节
double,占8个字节

对于小数类型的直接量,默认是double类型,如果希望表达的是float类型,需要在小数后面加上 F 或 f

1.4.4、 布尔类型

boolean
在java语言中,用于描述真假信息的数据类型是:boolean,只有两个值:
.true、false
.在内存中占1个字节空间

1.4.5、 字符

char
在java中,char类型(字符类型)描述单个字符,例如:’a’ ‘中’等
注意:字符类型必须使用 单引号 包裹

计算机底层只认识 01 二进制,整数 10 容易计算二进制数字
但是字符a如何计算二进制
并不是把a字符存储到内存中,而是在ASCII码表中建立字符和整数映射关系
a----97
计算机存储时,存储的是97,将来获取的也是97,再通过97映射关系找到对应的a字符

1.5、数据类型转换

自动类型转换
从小范围向大范围的转换,这个是编译过程自动完成的

强制类型转换
语法格式:目标类型 变量名 = (目标类型)原变量;
例如:
int a = 5;
double d1 = (double)a;

第二章、运算符

2.1、算数运算符

( + -* / %)
%,两数相除,取余数,例如: 10 % 3 = 1
/,除法运算,注意:结果和参与运算数字的类型保持一致
例如:int a = 10; int b = 3; a / b = 3;

+法运算,除了表示 四则运算之外,还用来表示字符串连接

小练习:

2.2、比较运算符

比较运算符:> < == >= <= !=
比较运算符的结果,都是布尔类型,例如:
5 > 3,理解:5是否大于3

2.3、自增减运算符

++,自增运算符,让当前的变量的值 + 1
–,自减运算符,当前变量的值 – 1

前++,前–,先值增,再运算
后++,后–,先运算,再值增

2.4、逻辑运算符

逻辑运算符有3个:
&&
逻辑与“并且”,运算符两边的条件都成立的时候,整个表达式的结果才成立
同真为真,一假为假

|| 逻辑或“或者”,运算符两边的条件有一个成立,整个表达式的结果就成立
一真为真,同假为假

! 取反,真为假,假为真
逻辑运算符,存在短路特性:
其中,对于逻辑与来说,如果第一个条件为false,则后面的表达式不再执行
其中,对于逻辑或来说,第一条件为true时,则后面的表达式不再执行

2.5、三目运算符

语法格式:条件表达式 ? 表达式1 : 表达式2;
描述:如果 ? 前面的条件表达式成立(true),则执行表达式1,如果前面的表达式不成立,则执行表达式2

举例:
小孩子如果大于等于18岁,则可以光明正大上网,如果小于18岁,则偷偷摸摸上网;

小练习:
1.提示用户输入一个正整数,判断并输出是否为二位数

2.提示用户输入考试成绩,判断并提示成绩是否及格

3.提示用户输入一个整数,并判断该整数是负数还是非负数

2.6、赋值运算符

=,将 = 右边的值 赋值给左边的变量

java还提供了如下赋值运算符:
+=、-=、*=、/=、%=

以 += 为例进行演示
int a = 10;
a += 5; // 将a变量 + 5之后,再赋值给a变量,等价于:a = a + 5;

经典面试题:
比较 a += 5 和 a = a + 5的区别
a += 5,隐含了强制类型转换,严格来说等价于:a = (byte)(a + 5)

2.7、运算符优先级

同一级别中, * / 优先级要高于 + -
乘除优先级 > 加减 > 赋值运算符
int c = 5 + 2 * 4;

可以使用 () 提升优先级,例如:
int c = (5+2) * 4
就会先运算() 里面的表达式

第三章、分支结构

3.1、流程控制介绍

Java三大语句结构:顺序结构、分支结构、循环结构
代码在执行过程汇总,可能会遇到各种不同的情况,每一种情况,我们就称为一个分支。

分支分为:单路分支、双路分支、多路分支

3.2、单路分支

代码执行过程中,只遇到一种情况,只做一次判断

语法格式:
if(条件表达式){
语句块;
}
如果条件表达式成立(条件表达式的结果为 true),则执行语句块

举例演示:

小练习:
提示用户输入四个整数,然后求出其中的最大值并打印

3.3、双路分支

双路分支,代码在执行过程中,有两种情况

语法格式:
if(条件表达式){
// 代码块1
}else{
// 代码块2
}

执行流程:
1.先判断条件表达式是否成立(是否为true)
2.如果成立(true),则执行代码块1
3.如果不成立(false),则执行代码块2

举例说明:

3.4、多路分支

代码在执行过程中,出现多种情况,称为多路分支

语法格式:
if(条件表达式1){
//代码块1
}else if(条件表达式2){
//代码块2
}else if(条件表达式3){
//代码块3
}…
else{
// 代码块4
}

执行流程:
1.先判断条件表达式1是否成立(true)
2.如果成立,则执行代码块1
3.如果不成立,则执行条件表达式2
4.如果条件2成立,则执行代码块2,如果不成立,则继续判断条件3
5.以此类推
6.如果上述条件都不成立,则执行else里面的代码

代码演示
如果我现在有超过50000块钱,我就去泰国旅游
如果我现在有超过5000块钱,我就去大草原大口吃肉,大碗喝酒
如果现在有超过1000块钱,去小树林一日游
如果连1000都没有,好好撸代码

3.5、switch…case多路分支

switch(condition ){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;

default:
代码块3;
break;
}

执行流程:

1.先判断switch中condition条件的值
2.如果condition的值等于值1,则执行第一个case语句块
3.如果condition的值等于值2,则执行第二个case语句块
4…
5.如果case值都不等于condition变量,则执行default

if、else 和 switch case的区别
if(age > 18),if的条件表示:区间、范围
switch…case 固定的几个点,例如:方向、星期()

如果case中,没有break,会一直向下执行,直到遇到break为止,这种情况我们称为”case 穿透”

3.6、练习

提示用户输入一个表示年份的整数,判断这一年是否是闰年。
如何判断 一个年份是否是闰年:

  1. 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。
    例 如,1996 年是闰年,而相应的,1993 年就不是闰年。
  2. 如果这个年份能够被100 整除,则这个数必须要能被400 整除,才是闰 年。
    例如,2000 年是闰年,1900 年不是闰年。

第 4 章、循环结构

4.1、循环介绍

循环,又称 重复执行
计算机最强大的功能之一就是:帮我们做一些重复性的工作

for循环,又称为计数循环,明确要循环多少次
while循环,又称为条件循环,只要符合while里面的条件,就重复执行

4.2、for循环

语法格式:
for(初始变量; 条件表达式; 初始变量修改表达式){
代码块1;
}
代码块2

执行流程:
1.先在内存中初始一个变量
2.判断初始变量是否符合条件表达式
2.1符合条件,执行代码块1; 修改初始变量
2.2不符合条件,退出循环,执行代码块2

代码演示:

4.3、课堂练习:

计算1-100之间数字的和
计算1-10之间的累积并打印出来(123*…10)
打印所有三位数的水仙花数(所谓的水仙花数是指,一个数字的个位、十位、百位的立方和等于这个数本身)

4.4、无限循环

无限循环,又称为 ”死循环”
for(;

Java基础看这篇就足够用了(基础知识汇总)相关推荐

  1. 图解 Kafka,看本篇就足够啦

    Kafka 是主流的消息流系统,其中的概念还是比较多的,下面通过图示的方式来梳理一下 Kafka 的核心概念,以便在我们的头脑中有一个清晰的认识. 基础 Kafka 是一套流处理系统,可以让后端服务轻 ...

  2. vue开发看这篇文章就够了 vue知识大全

    Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的 ...

  3. java 后端校验_如何实现Java后端数据校验?看这篇就足够!

    前言 每次我们在搭建一个开源项目的首要任务包括:项目的统一异常处理.统一结果封装以及做项目的数据校验,在前后端分离的情况下,不仅前端需要做数据校验,同样后端也要实现,前端主要使用一些类似与jQuery ...

  4. Flink面试,看这篇就足够了

    概述 2019 年是大数据实时计算领域最不平凡的一年,2019 年 1 月阿里巴巴 Blink (内部的 Flink 分支版本)开源,大数据领域一夜间从 Spark 独步天下走向了两强争霸的时代.Fl ...

  5. spring版本 jdk8_从JDK8升级到JDK11,看这篇就足够了

    原文地址:https://blog.codefx.org/java/java-11-migration-guide/. 在原文的基础上,增加了一些我遇到的具体的坑还有在特定场景下的解决方案,供大家参考 ...

  6. 掌握 Kafka,看这篇就足够了

    Apache Kafka 是一个快速.可扩展的.高吞吐的.可容错的分布式"发布-订阅"消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点.较 ...

  7. 深入理解JVM虚拟机13:JVM面试题,看这篇就足够了(87题详解)

    1.java中会存在内存泄漏吗,请简单描述. 会.自己实现堆载的数据结构时有可能会出现内存泄露,可参看effective java. 2.64 位 JVM 中,int 的长度是多数? Java 中,in ...

  8. JVM面试题,看这篇就足够了(87题详解)

    文章目录 1.java中会存在内存泄漏吗,请简单描述. 2.64 位 JVM 中,int 的长度是多数? 3.Serial 与 Parallel GC 之间的不同之处? 4.32 位和 64 位的 J ...

  9. 软件测试工程师—从零到月入过万你只需要看这篇就够了(基础篇)

    不论你是软件测试初学者还是零基础想转行进这个行业的,还是已在行业耕耘一两年的熟手,这篇文章你都值得收藏点赞,反复观看. 一 基础篇 1.软件测试的定义,分类. 软件测试行业前景,软件测试的原则,软件测 ...

最新文章

  1. 硬货 | 一文解读完五篇重磅ACL2017 NLP论文
  2. 收集几个js实现的日期时间控件
  3. Kaggle心得(一)
  4. alert中添加表格_Excel设置表格边框的几种方法,还有自动添加边框哟
  5. yum 错误:Invalid configuration value: failovermethod=priority
  6. 数据结构拾遗(2) --红黑树的设计与实现(中)
  7. 倒数第N个字符串 (15 分)
  8. pythondjangoddos_django带服务器
  9. Tricks(三十一)—— 访问一个数组相邻的奇数位偶数位
  10. 【渝粤教育】国家开放大学2018年春季 0089-21DInternet和Intranet应用 参考试题
  11. mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作...
  12. 架构师手册——图形化表达
  13. Unity接入ios SDK(小7手游)没有你想的那么难
  14. ANSYS软件许可证优化,高效提升工作效率
  15. 变身成为互联网设计师
  16. 城乡规划设和计算机应用,城乡规划行业未来展望
  17. netcat网工必备工具
  18. ERROR LNK 2001||2019
  19. 苹果cms小程序服务器要求,苹果cmsV10最新版小程序插件
  20. .net core release 发布

热门文章

  1. 浅谈白化(Whitening) 、PCA白化、ZCA白化
  2. Linux系统知识全景个人笔记(一)——Linux结构与组成
  3. 泰拉瑞亚php,《泰拉瑞亚》评测:“真·全平台”和3000万销量
  4. python绘制堆叠条形图
  5. S如何边缘控制_驾考科目二侧方位停车、倒库与S弯道,上坡起步技巧及注意事项,意外应对方法...
  6. MPHY协议解读三:8b10b编码
  7. EASM,让你更快获悉资产风险
  8. EFDC_EE如何设置自适应时间步长
  9. 中缀表达式转换成前缀表达式和后缀表达式
  10. java tcp 断开检测_TCP连接网线断开时的情况测试