java笔记
alyja
这个作者很懒,什么都没留下…
展开
-
数据结构与算法(八)十大算法
十大算法二分查找算法(非递归)分治算法动态规划算法KMP算法贪心算法普里姆算法克鲁斯卡尔算法二分查找算法(非递归)public class BinarySearchNoRecur { public static void main(String[] args) { //测试 int[] arr = {1,3, 8, 10, 11, 67, 100}; int index = binarySearch(arr, 100); System.out.println("index=" + i原创 2020-08-05 09:48:51 · 478 阅读 · 0 评论 -
数据结构与算法(七)二叉排序树,多路查找树,图
数据结构二叉排序树二叉排序树创建和遍历平衡二叉树多路查找树图二叉排序树二叉排序树创建和遍历class Node { int value; Node left; Node right; public Node(int value) { this.value = value; } @Override public String toString() { return "Node [value=" + value + "]"; } //添加结点的方法 //递归的形式原创 2020-08-02 20:28:56 · 343 阅读 · 0 评论 -
数据结构与算法(六)赫夫曼树
赫夫曼树赫夫曼树创建赫夫曼编码赫夫曼树创建package com.atguigu.huffmantree;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class HuffmanTree { public static void main(String[] args) { int arr[] = { 13, 7, 8, 3, 29, 6, 1 };原创 2020-08-01 21:32:40 · 370 阅读 · 0 评论 -
数据结构与算法(五)哈希表和树
数据结构:哈希表和树哈希表树顺序存储二叉树线索化二叉树哈希表public class HashTabDemo { public static void main(String[] args) { //创建哈希表 HashTab hashTab = new HashTab(7); //写一个简单的菜单 String key = ""; Scanner scanner = new Scanner(System原创 2020-08-01 10:46:58 · 521 阅读 · 0 评论 -
数据结构与算法(四)查找算法
查找算法线性查找二分查找插值查找斐波那契(黄金分割法)查找线性查找public class SeqSearch { public static void main(String[] args) { int arr[] = { 1, 9, 11, -1, 34, 89 };// 没有顺序的数组 int index = seqSearch(arr, -11); if(index == -1) { System.out.println("没有找到到"); } else { Sy原创 2020-07-31 13:24:57 · 186 阅读 · 0 评论 -
数据结构与算法(三)排序算法与时间复杂度
排序算法时间复杂度冒泡排序时间复杂度时间复杂度:忽略常数项,忽略低次项(一次项),忽略系数(三次项不能忽略)冒泡排序// 将前面额冒泡排序算法,封装成一个方法 public static void bubbleSort(int[] arr) { // 冒泡排序 的时间复杂度 O(n^2), 自己写出 int temp = 0; // 临时变量 boolean flag = false; // 标识变量,表示是否进行过交换 for (int i = 0; i <原创 2020-07-31 10:32:44 · 263 阅读 · 0 评论 -
数据结构与算法(二)迭代解决迷宫和八皇后问题
递归迷宫问题public class MiGong { public static void main(String[] args) { // 先创建一个二维数组,模拟迷宫 // 地图 int[][] map = new int[8][7]; // 使用1 表示墙 // 上下全部置为1 for (int i = 0; i < 7; i++) { map[0][i] = 1; map[7][i] = 1; } // 左右全部置为1 for原创 2020-07-29 21:21:15 · 242 阅读 · 0 评论 -
数据结构与算法(一)线性数据结构
数据结构线性结构与非线性结构稀疏数组队列链表栈线性结构与非线性结构稀疏数组public class SparseArray { public static void main(String[] args) { int chessArr1[][]=new int[11][11]; chessArr1[1][2]=1; chessArr1[2][3]=2; for(int[] row:chessArr1){原创 2020-07-29 15:29:32 · 402 阅读 · 0 评论 -
Java尚硅谷基础笔记-day17 java8新特性
第十五章 java8新特性Lambda表达式函数式(Functional)接口方法引用与构造器引用强大的Stream APIOptional类Lambda表达式Lambda表达式的使用1.举例: (o1,o2) -> Integer.compare(o1,o2);2.格式:-> :lambda操作符 或 箭头操作符->左边:lambda形参列表 (其实就是接口中的抽象方法的形参列表)->右边:lambda体 (其实就是重写的抽象方法的方法体)3. Lambda表达式的原创 2020-07-23 16:41:58 · 764 阅读 · 0 评论 -
Java尚硅谷基础笔记-day16 反射机制
第十四章 反射理解Class类并获取Class实例类的加载与ClassLoader的理解创建运行时类的对象获取运行时类的完整结构反射的应用:动态代理理解Class类并获取Class实例关于java.lang.Class类的理解1.类的加载过程:程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾)。接着我们使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件加载到内存中。此过程就称为类的加载。加载到内存中的类,我们就称为运行时类,此 运行时类,就原创 2020-07-23 13:58:42 · 413 阅读 · 0 评论 -
Java尚硅谷基础笔记-day15 网络编程
第十四章 网络编程网络编程概述TCP网络编程UDP网络编程URL编程网络编程概述一、网络编程中有两个主要的问题:1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用2.找到主机后如何可靠高效地进行数据传输二、网络编程中的两个要素:1.对应问题一:IP和端口号2.对应问题二:提供网络通信协议:TCP/IP参考模型(应用层、传输层、网络层、物理+数据链路层)三、通信要素一:IP和端口号IP:唯一的标识 Internet 上的计算机(通信实体)在Java中使用InetAddress原创 2020-07-22 20:14:56 · 498 阅读 · 0 评论 -
Java尚硅谷基础笔记-day14 IO流
第十三章 IO流File类的使用IO流原理及流的分类节点流缓冲流转换流标准输入、输出流打印流数据流对象流随机存取文件流NIO.2中Path、Paths,Files类的使用File类的使用IO流原理及流的分类节点流缓冲流转换流标准输入、输出流打印流数据流对象流随机存取文件流NIO.2中Path、Paths,Files类的使用...原创 2020-07-22 18:38:46 · 748 阅读 · 0 评论 -
Java尚硅谷基础笔记-day13泛型
第十二章 泛型泛型集合中使用泛型自定义泛型结构泛型在继承上的体现和通配符的使用泛型集合中使用泛型泛型的使用1.jdk 5.0新增的特性2.在集合中使用泛型:总结:① 集合接口或集合类在jdk5.0时都修改为带泛型的结构。② 在实例化集合类时,可以指明具体的泛型类型③ 指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器、属性等)使用到类的泛型的位置,都指定为实例化的泛型类型。比如:add(E e) —>实例化以后:add(Integer e)④ 注意点原创 2020-07-21 17:29:31 · 487 阅读 · 0 评论 -
Java尚硅谷基础笔记-day12集合
第十一章 集合Java集合框架概述Collection接口方法Ilterator迭代器接口Collection子接口一:ListCollection子接口一:SetMap接口Collections工具类Java集合框架概述集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2.1 数组在存储多个数据方面的特点:一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型也就确定了原创 2020-07-18 20:17:35 · 1766 阅读 · 0 评论 -
Java尚硅谷基础笔记-day11枚举类与注解
第十章 枚举类与注解10.1 枚举类的使用10.2 注解(Annotation)的使用10.1 枚举类的使用一、枚举类的使用1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类2.当需要定义一组常量时,强烈建议使用枚举类3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。二、如何定义枚举类方式一:jdk5.0之前,自定义枚举类方式二:jdk5.0,可以使用enum关键字定义枚举类自定义枚举类属性:private final对象:private static fina原创 2020-07-18 10:53:25 · 810 阅读 · 0 评论 -
Java尚硅谷基础笔记-day10Java常用类
第九章 Java常用类9.1 字符串相关的类9.2 JDK8之前的日期时间API9.3 JDK8中新日期时间API9.4 Java比较器9.5 System类9.6 Math类9.7 BigInteger与BigDecimal9.1 字符串相关的类String特性String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小3.原创 2020-07-15 23:55:20 · 868 阅读 · 0 评论 -
Java尚硅谷基础笔记-day9多线程
第八章 多线程8.1 基本概念:程序,进程,线程8.2 线程的创建和使用8.3 线程的生命周期8.4 线程的同步8.5 线程的通信8.6 JDK5.0新增线程创建方式8.1 基本概念:程序,进程,线程每个线程都有独立的栈,程序计数器多个线程共享同一个进程中的结构:方法区,堆一个Java应用程序java.exe,其实至少有三个线程: main()主线程, gc()垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。单核CPU(假的多线程,一个时间单元内只能执行一个线程任务)与多核CPU原创 2020-07-14 11:24:18 · 610 阅读 · 0 评论 -
Java尚硅谷基础笔记-day8异常处理
第七章 异常处理7.1异常概述与异常体系结构7.2 常见异常7.3 异常处理机制一:try-catch-finally7.4 异常处理机制二:throws7.5 手动抛出异常7.6 用户自定义异常类7.1异常概述与异常体系结构异常分为:编译时异常(受检异常)和运行时异常(非受检异常)7.2 常见异常Error:一般不编写针对性的代码处理public static void main(String[] args) { //1.栈溢出java.lang.StackOverflowError原创 2020-07-08 20:01:57 · 550 阅读 · 0 评论 -
Java尚硅谷基础笔记-day7面向对象(三)
第六章 面向对象(三)6.1 关键字:static6.2 理解main方法的语法6.3 类的成员之四:代码块6.4 关键字:final6.5 抽象类与抽象方法6.6 接口类的成员之五:内部类6.1 关键字:staticstatic关键字的使用:1.static:静态的2.static可以用来修饰:属性,方法,代码块,内部类3.使用static修饰属性:静态变量3.1属性按是否使用static修饰,又分为:静态属性VS非静态属性(实例变量)实例变量:我们创建了类的多个对象,每个对象都独立的拥有一原创 2020-07-08 10:58:41 · 412 阅读 · 0 评论 -
Java尚硅谷基础笔记-day6面向对象(二)
第五章 面向对象(二)5.1 OOP特征二:继承性5.2 方法的重写5.3 四种访问权限修饰符5.4 关键字:super5.5 子类对象实例化过程5.6 OOP特征三:多态性5.7 Object类的使用5.8 包装类的使用5.1 OOP特征二:继承性一. 继承性的格式:class A extend B{}A:子类,派生类,subclassB:父类,超类,基类,superclass**二. 继承性的体现:**一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有属性和方法。特别地是父类中声明为原创 2020-07-03 10:04:50 · 503 阅读 · 0 评论 -
Java尚硅谷基础笔记-day5面向对象(一)
第四章 面向对象(一)4.1 面向过程与面向对象4.2 Java基本元素:类和对象4.3 对象的创建和使用4.4 类的成员之一:属性4.5 类的成员之二:方法4.6 OOP特征一:封装和隐藏4.7 类的成员之三:构造器4.8 关键字:this4.9 关键字:package,import学习面向对象的三条主线:1.Java类及类的成员:属性,方法,构造器,代码块,内部类2.面向对象的三大特征:封装性,继承性,多态性,(抽象性)3.其它关键字:this,super,final4.1 面向过程与面向对象原创 2020-06-30 14:51:14 · 679 阅读 · 0 评论 -
Java尚硅谷基础笔记-day4数组
第三章 数组3.1 数组的概述3.2 一维数组的使用3.3 多维数组的使用3.4 数组中涉及的常见算法3.5 数组工具类的使用3.6 数组使用中的常见异常3.1 数组的概述3.2 一维数组的使用//3.2.1.声明和初始化 //方式一:静态初始化 int[] arr1=new int[] {1,2,3}; int[] arr2; arr2=new int[] {1,2}; //方式二:动态初始化 int[] arr3=new int[3]; //也是正确的写法 int[原创 2020-06-27 21:23:26 · 466 阅读 · 0 评论 -
Java尚硅谷基础笔记-day4数组-数组常见算法
第三章 数组3.1 数组的概述3.2 一维数组的使用3.3 多维数组的使用3.4 数组中涉及的常见算法3.5 数组工具类的使用3.6 数组使用中的常见异常3.4 数组中涉及的常见算法3.4.1数组元素的赋值练习1:杨辉三角使用二维数组打印一个 10 行杨辉三角【提示】第一行有 1 个元素, 第 n 行有 n 个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即:yanghui[i][j] = yanghui[i-1][j-原创 2020-06-27 21:22:37 · 484 阅读 · 0 评论 -
Java尚硅谷基础笔记-day3 流程控制函数
第二章 Java基本语法:变量与运算符2.1关键字和保留字2.2标识符2.3变量基本数据类型基本数据类型变量间转换基本数据类型与String间转换进制与进制间的转换2.4 运算符2.5 程序流程控制前四节笔记地址:Java尚硅谷基础笔记-day2 变量及运算符2.5 程序流程控制分支结构if-else结构注意:当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓;当多个条件是“包含”关系时,“小上大下 / 子上父下”实例1:补充知识:键盘输入实现步骤:1.原创 2020-06-24 23:41:33 · 361 阅读 · 0 评论 -
Java尚硅谷基础笔记-day2 变量及运算符
第二章 Java基本语法:变量与运算符2.1关键字和保留字2.2标识符2.3变量基本数据类型基本数据类型变量间转换基本数据类型与String间转换进制与进制间的转换2.4 运算符2.5 程序流程控制2.1 关键字和保留字保留字:尚未使用,以后版本会作为关键字用,goto,const2.2 标识符合法标识符规则:1.由26个英文字母大小写, 0-9 , _或 $ 组成2.数字不可以开头。3.不可以使用关键字和保留字,但能包含关键字和保留字。4.Java中严格区分大小写,长度无原创 2020-06-24 20:25:59 · 494 阅读 · 0 评论 -
Java尚硅谷基础笔记-day1计算机及Java概述
计算机基础知识概述1.冯若依曼体系结构2.IT定律之行业发展定律摩尔定律,安迪-比尔定律,反摩尔定律3.内存内存单位:比特bit,一个0或1,最小储存单位字节byte,最基本存储单位,8个比特千字节(KB)=1024B内存作用:1.从硬盘读取数据,提供给CPU使用2.保存CPU的一些临时执行结果,一篇CPU下次使用4.操作系统用户-应用程序-操作系统-硬件Java 概述1.常见DOS命令2.Java语言特点1.面向对象两个基本概念:类,封装三大特性:封装,继承,多态原创 2020-06-24 00:01:46 · 609 阅读 · 0 评论