Map集合概述
Map集合称为双列集合,格式:{key1=value1, key2=value2, key3=value3,…… },一次需要存一对数据作为一个元素
Map集合的每个元素“key = value”称为一个键值对/键值对对象/一个Entry对象,Map集合也被叫做“键值对集合”
Map集合的所有键是不允许重复的,但值可以重复,键和值是一一对应的,每个键只能找到自己对应的值
应用场景:需要存储一一对应的数据时,就可以考虑使用Map集合来做
Map集合体系
12345graph TB; Map-->HashMap Map-->...... Map-->TreeMap HashMap-->LinkedHashMap
Map集合体系特点:
注意:Map系列集合的特点都是由键决定的,值只是一个附属品,值是不做要求的
HashMap(由键决定特点):无序、不重复、无索引(用的最多)
LinkedHashMap(由键决定特点):由键决定的特点:有序、不重复、无索...
概述
集合:集合是一种容器,用来装数据的,类似于数组,但集合的大小可变,开发中也非常常用。为了满足不同的业务场景需求,Java还提供了很多不同特点的集合给我们选择。
集合体系结构:
单列集合:每个元素(数据)只包含一个值
Collection,List,ArrayList,LinkedList,Set,HashSet,LinkedHashSet,TreeSet
双列集合:每个元素包括两个值(键值对)
Map,HashMap,TreeMap,LinedHashMap。
Collection集合体系:
12345678graph TB; Collection-->List Collection-->Set List-->ArrayList List-->LinkedList Set-->HashSet HashSet-->LinkedHashSet Set-->TreeSet
Collection集合特点:
List系列集合:添加的元素是有序的、可重复、有索引
ArrayList、LinkedList:...
算法排序算法冒泡排序
每次从数组中找出最大值放在数组的后面去。
冒牌排序的步骤分析:
确定总共需要做几轮:数组的长度 - 1
每轮比较几次:数组长度 - 轮次 - 1
当前位置数据大于后一位置则交换数据,否则不进行操作
代码实现:
123456789101112int[] arr = {3,5,2,1,7,4,10,6,8,9};int temp;for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if(arr[j] > arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } }}
选择排序
每轮选择当前位置,开始找出后面的较小值,与该位置交换
选择排序的步骤分析:
确定总共需要选择...
Math、System、RuntimeMath
Math:代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。
Math类提供的常见方法:
方法名
说明
public static int abs(int a)
获取参数的绝对值
public static double ceil(double a)
向上取整
public static double floor(double a)
向下取整
public static int round(float a)
四舍五入
public static int max(int a, int b)
获取两个int值中的较大值
public static double pow(double a, double b)
返回a的b次幂的值
public static double random()
返回值为double的随机值,范围[0.0, 1.0)
System
System:代表程序所在的系统,也是一个工具类。
System类提供的常见方法:
方法名
说明
pub...
API
什么是API?
全称应用程序编程接口(Application Programming interface)
就是Java自己写好的程序,给程序员调用,方便完成一些功能
API文档:程序使用说明书
包
什么是包?
包是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理与维护。
建包的语法格式:如:package com.local.project;
在自己程序中调用其他包下的程序的注意事项
如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问!导包格式:import 包名.类名;
如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用;但java.lang包下的程序是不需要我们导包的,可以直接使用
如果当前程序,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问
StringString创建对象封装字符串数据的方式
方式一:Java程序中的所有字符串文字(例如:”ab...
内部类内部类概述
内部类是五大成分之一(成员变量、方法、构造方法、内部、代码块),如果一个类定义在另一个类内部,这个类就是内部类
场景:当一个类的内部,包含一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。
123456public class Car{ // 内部类 public class Engine{ }}
内部类有四种形式:
成员内部类
静态内部类
局部内部类
匿名内部类
成员内部类
成员内部类就是类中的一个普通成员,类似前面我们学过的普通的成员变量、成员方法
12345public class Outer{ // 成员内部类 class public Inner{ }}
使用内部类创建对象:Outer.Inner 对象名 = new Outer().new Inner();
成员内部类的实例方法中,访问其他成员有啥特点?
可以直接访问外部类的实例成员、静态成员
可以拿到当前外部...
认识面向对象编程
面向对象编程的优点:
凡是找对象的编程套路,更加符合人类思维习惯,编程也会更直观
对象是啥?如何得到?
对象就是一种特殊的数据结构。
对象是用类new出来的,有了类就可以创建出对象
12345public class 类名{ 1.变量,用来说明对象可以处理什么数据 2.方法,描述对象有什么功能,也就是可以对数据进行什么样的处理 ……}
类名 对象名 = new 类名();
面向对象编程这种套路是咋回事?
祖师爷(詹姆斯·高斯林 )认为万物皆对象,谁的数据谁处理
面向对象编程的三大特性:继承、封装、多态
对象在计算机中的执行原理
对象在计算机中的执行原理是怎么回事?
Student s = new Student();
每次创建对象,就是在堆内存中开辟一块内存区域代表一个学生对象。
对象变量里面记住的是学生对象的地址。
如何识别引用类型的变量?
变量中存储的是地址就是引用类型的变量
类和对象的一些注意事项
类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义,比如:Student、C...
数组概述
数组就是一个容器,用来存储一批同种类型的数据
数组的定义和访问静态初始化数组
数组的静态初始化的写法和特点什么样的?
1234567数据类型[] 数组名 = {元素1, 元素2, 元素3,……};int[] ages = {12, 24, 36, 68};double[] scores = {89.9, 79.8, 69.1};// 完整格式数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3,……};int[] ages = new int[]{12, 24, 36, 68};
注意:
什么类型的数组必须存放什么类型的数据。
“数据类型[] 数组名” 也可以写成 “数据类型 数组名[]”
数组是引用数据类型,数组变量名中存储的是数组在内存中的地址信息
数组的访问
访问数组的元素:数组名称[索引]
访问数组的长度:数组名称.length
数组的最大索引:数组名.length - 1
如果访问数组时,使用的索引超过了数组长度执行程序时会...
分支结构if语句
if分支:可以根据条件,选择执行某段程序
if分支的三种写法:
123456789101112131415161718192021222324// 第一种语法if(条件表达式){ 语句;}// 第二种语法if(条件表达式){ 语句1;} else { 语句2;}// 第三种写法if(条件表达式){ 语句1;} else if{ 语句2;}……else { 语句n;}
PS:如果if语句的{}中只有一行代码的情况下,{}可以不写
switch语句
使用switch时有哪些注意事项?
表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
case给出的值不允许重复,且只能是字面量,不能是变量。
正常使用switch的时候,不要忘记写break,否则会出现穿透现象
switch穿透性能解决什么问题?
存在...
初识Java背景知识
Java是美国SUN公司在1995年推出的一门计算机高级编程语言
Java早期称为Oak,后期改名为Java
Java之父:詹姆斯·高斯林 (James Gosling)
2009年sun公司被Oracle公司收购
Java用途
桌面应用开发
企业级应用开发
移动应用开发
服务器系统
大数据开发
游戏开发
Java技术体系
技术体系
说明
Java SE(Java Standard Edition):标准版
Java技术的核心和基础
Java EE(Java Enterprise Edition):企业版
企业级应用开发的一套解决方案
Java ME(Java Micro Edition):小型版
针对移动应用的解决方案
JDK的安装与下载
要使用java,必须先在Oracle官网安装JDK(Java Development Kit),即开发者工具包
最好下载JDK的LTS(长期支持版)版本
在命令行窗口,输入java -version、javac -version看版本号
JDK中最重要的2个命令程序:
javac:编译工具
ja...