自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_23187859的博客

对这个世界要充满敬畏~

  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 红黑树

2020-08-16 17:51:30 133

原创 堆和优先队列

优先队列和堆普通队列:first in first out优先队列:出队顺序与入队顺序无关;和优先级有关优先队列的底层实现可以是普通线性结构,如;链表,也可以是顺序线性结构,如数组,也可以由 堆 来实现堆的基本结构二叉堆 Binary Heap从 1 开始的数组从 0 开始的数组Sift up 上浮sift down 下沉基于堆的优先队列实现Java标准库中的优先队列可以实现Comparator接口,可以自

2020-08-10 17:29:26 126

原创 集合set与映射map

集合和映射都是高级的数据结构他们都是由动态数据结构(链表,二叉树)底层实现的集合一般元素不能重复(多重集合允许元素重复)链表实现链表中不允许重复元素出现即可实现集合但是链表的平均复杂度是O(n),所以集合复杂度是O(n2) (假设集合中有n个元素),因此效率很低Java中的HashSet是结合哈希表和链表实现的集合,性能很好二分搜索树实现二分搜索树可以自然而然地实现集合二分搜索树的优势在于每次遍历都是一分为二,一般可以少遍历很多元素,因此平均复杂度是O(log n)因此.

2020-08-09 17:13:09 155

原创 二分搜索树

树结构使用树结构存储数据,会很高效分类:二分搜索树(Binary Search Tree)平衡二叉树:AVL;红黑树堆;并查集线段树;Trie(字典树,前缀树)二叉树前序遍历、中序遍历、后序遍历如何直接在得到一个二叉树时直接得到遍历结果前序遍历中序遍历后序遍历层序遍历使用的是队列作为底层实现广度优先遍历删除节点(难点)package com.lancemai.binarysearchtree;import java.util.Ill

2020-08-08 15:33:18 136

原创 Socket通信时读取信息的阻塞问题(TCP的粘包问题)

这两天做作业遇到了一个难点:Socket通信时读取信息时的阻塞问题,也许大家也会遇到,在这里我做个分享---------------------------在输入流socket.getInputStream中,如果某线程调用read()方法,则会形成阻塞,等读取到消息以后才会继续执行。而我们在读取的时候经常采用while循环,循环条件是while (int res = bis.read()) != -1,即发送信息方write到数据的末尾时,会返回一个-1,然后接收方read到-1后,循环终止。可不幸

2020-08-05 12:17:09 904

原创 Java核心类库-下(五)反射机制

五、反射机制5.1 基本概念5.2 Class类基本概念获取Class对象的方式常用方法(掌握)5.3 Constructor类基本概念Class类的常用方法Constructor类的常用方法5.4 field类基本概念Class类的常用方法5.5 Method类Class类中常用方法Method类中常用方法5.6 获取其它结构信息总结5.1 基本概念通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的,在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这

2020-07-29 13:47:36 235

原创 第五讲 文本编辑器Vim

第五讲 文本编辑器Vim一、Vim常用操作Vim简介:主要操作一、Vim常用操作Vim简介:Vim是一个功能强大的全屏幕文本编辑器,是Linux/Unix上最常用的文本编辑器,作用是建立、编辑、显示文本文件(Vim没有菜单,只有命令)主要操作- 进入vim:vim 文件名 (如果不存在此文件,则默认创建文件)- 按 Esc 返回命令模式- 按 i 键从命令模式回到编辑模式- 在命令模式中输入" : " 以输入命令- 返回上一编辑状态: Ctrl+u- 保存(不退出): :

2020-07-28 22:33:38 86

原创 第四讲 Linux常用命令

第四讲 Linux常用命令一、目录处理命令1、目录处理命令: ls2、目录处理命令: mkdir3、目录处理命令:cd4、目录处理命令:pwd5、目录处理命令:rmdir(此命令不实用,作为了解)6、目录处理命令:cp7、目录处理命令:mv8、目录处理命令:rm二、文件处理命令9、文件处理命令:touch10、文件处理命令:cat11、文件处理命令:tac (注意:tac 是倒着写的 cat)12、文件处理命令:more (不太实用,一般用less命令)13、文件处理命令:less (非常常用的分页显示内容

2020-07-28 22:29:43 175

原创 第三讲 给初学者的建议

第三讲 给初学者的建议一、Linux系统注意事项1. Linux严格区分大小写 (针对任何内容)2. Linux中所有内容都以文件形式保存,包括硬件3. Linux不靠扩展名区分文件类型(靠的是文件权限)4. Linux所有的存储设备都必须挂载之后用户才能使用,包括硬盘、U盘和光盘5. Windows下的程序不能直接在Linux中安装二、服务器管理和维护建议1. Linux各目录的作用2. 服务器注意事项一、Linux系统注意事项1. Linux严格区分大小写 (针对任何内容)2. Linux中所有

2020-07-28 21:23:24 93

原创 第二讲 Linux系统安装

第二讲 Linux系统安装一、VMware虚拟机安装与使用二、系统分区2.1 磁盘分区2.2 格式化2.3 建立分区设备文件名2.4 挂载三、Linux系统安装四、远程登录管理工具一、VMware虚拟机安装与使用VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现一台机器上真正同时运行两个独立的操作系统VMware官方网站:http://www.vmware.comVMware主要特点:不需要分区或者重新开机就能在同一台PC上

2020-07-28 20:47:47 101

原创 第一讲 Linux系统简介

第一讲 Linux系统简介一、Unix与Linux发展史二、开源软件简介三、Linux应用领域四、Linux学习方法一、Unix与Linux发展史Unix与Linux如同父子关系,Linux是Unix的分支之一Linux 内核版 和 开发版 的区别:Linux内核官网 www.kernel.org 会定期发布一些内核版本,然后厂商会在内核版本上加上自己的桌面、应用等形成开发版本,因此说,开发商的Linux开发版本不一样,但是所使用的的内核是一样的Linux 版本选择:redhat系

2020-07-28 20:28:10 89

原创 Java核心类库-下(四)网络编程

四、网络编程4.1 网络编程的常识七层网络模型相关的协议(笔试题)协议的概念TCP协议UDP协议IP地址(重点)端口号(重点)4.2 基于TCP协议的编程模型(重点)C/S架构的简介编程模型相关类和方法ServerSocket类Socket类注意事项案例:服务器和客户端之间的通信实现服务器采用多线程机制的实现4.3 基于UDP协议的编程模型(熟悉)编程模型相关类和方法DatagramSocket 类DatagramPacket类InetAddress类4.1 网络编程的常识七层网络模型OSI(Op

2020-07-28 17:23:26 183

原创 Java核心类库-下(三)多线程

三、多线程3.1 基本概念程序和进程的概念线程的概念3.2 线程的创建(重中之重)Thread类的概念创建方式执行流程.方式的比较匿名内部类的方式线程的生命周期(熟悉)线程的编号和名称(熟悉)常用方法(重点)3.1 基本概念程序和进程的概念程序 = 数据结构 + 算法,其实程序主要指存放在硬盘上的可执行文件进程 - 主要指运行在内存中的可执行文件目前主流的操作系统都支持多进程,为了让操作系统同时可以执行多个任务,但进程是重量级的,也就是新建一个进程会消耗CPU和内存空间等系统资源,因此进程的数

2020-07-27 20:50:49 200

原创 递归与链表

递归与链表LeetCode题库中第203题递归基础与递归的宏观语意数组求和的递归算法用递归实现链表递归运行的机制LeetCode题库中第203题// Definition for singly-linked list.public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } // 链表节点的构造方法(自己构造测试用例) public L

2020-07-26 17:35:49 454

原创 Java核心类库-下(二)IO流

二、IO流1 IO流的概念2 基本分类3 体系结构4 相关流的详解4.1 FileWriter类(重点)基本概念常用方法4.2 FileReader类(重点)基本概念常用方法1 IO流的概念IO就是Input和Output的简写,也就是输入和输出的含义IO流就是指读写数据时像流水一样从一端流到另外一端,因此得名为“流"2 基本分类按照读写数据的基本单位不同,分为 字节流 和 字符流其中字节流主要指以字节为单位进行数据读写的流,可以读写任意类型的文件其中字符流主要指以**字符(2个字节

2020-07-26 11:25:30 277

原创 阶段一模块三总结

阶段一模块三总结

2020-07-24 22:34:25 158

原创 阶段一模块二总结

阶段一模块二总结

2020-07-24 21:58:32 208

原创 链表

链表

2020-07-24 17:15:26 77

原创 Java核心类库-下(一)异常机制和File类

一、异常机制和File类1.1 异常机制(重点)基本概念异常的分类异常的避免异常的捕获异常的抛出自定义异常1.2 File类(重点)基本概念常用的方法总结1.1 异常机制(重点)基本概念异常就是"不正常"的含义,在Java语言中主要指程序执行中发生的不正常情况。java.lang.Throwable类是Java语言中错误(Error)和异常(Exception)的超类其中Error类主要用于描述Java虚拟机无法解决的严重错误,通常无法编码解决,如:JVM挂掉了其中Exception类主

2020-07-24 13:00:55 184

原创 栈和队列

栈和队列1. 栈2. 队列1. 栈应用一:import com.lancemai.Array.Array;public class ArrayStack<E> implements Stack<E> { Array<E> array; // 成员变量 public ArrayStack(int capacity) { array = new Array<>(capacity); }

2020-07-22 18:06:15 120

原创 Java核心类库-上(四)集合类库

四、集合类库4.1 集合的概述(重点)集合的由来集合的框架结构4.2 Collection集合(重点)基本概念常用的方法(练熟、记住)4.3 Iterator接口(重点)基本概念常用方法4.4 for each循环(重点)基本概念语法格式执行流程4.5 List 集合(重中之重)基本概念ArrayList类的源码解析LinkedList类的源码解析List集合的常用方法Stack类的编程使用案例4.6 Queue集合(重点)基本概念常用方法小结4.74.1 集合的概述(重点)集合的由来当需要在J

2020-07-22 10:54:12 338

原创 数组

数组数组封装泛型数组最大的优点:快速查询数组最好应用于 索引有语意 的情况但并非所有有语意的索引都适用于数组数组也可以处理索引没有语意的情况数组封装基于java的数组,二次封装属于我们的数组类(动态数组)public class Array { private int[] data; private int size; // 无参构造方法,默认数组容量 public Array() { this(10); } //

2020-07-21 15:32:48 84

原创 Java核心类库-上(三)可变字符串类和日期相关类

三、可变字符串类和日期相关类3.1 可变字符串类(重点)基本概念StringBuilder类 常用的构造方法StringBuilder类 常用的成员方法返回值的设计(笔试)3.2 Java8之前的日期相关类(熟悉)System类 的概述(1)基本概念(2)常用的方法Date类 的概述(1)基本概念(2)常用的方法SimpleDateFormat类 的概述(1)基本概念(2)常用的方法Calendar类 的概述(1)基本概念(2)常用的方法笔试考点3.3 Java8中的日期相关类(熟悉)Java8日期类的由来

2020-07-19 20:31:21 155

原创 算法复杂度分析

一般从以下维度来评估算法的优劣正确性、可读性、健壮性(对不合理输入的反应能力)时间复杂度(time complexity):程序执行时间空间复杂度(space complexity):占用的存储空间大O表示法忽略常数、系数、低阶:9 -> O(1)2n+1 -> O(n)3n^2 - 1 -> O(n^2)对数阶一般省略底数...

2020-07-19 16:29:52 307

原创 Java核心类库-上(二)String类的概述和使用

二、String类的概述和使用2.1 String类和常量池的概念String类的概念(重点)常量池的概念(原理)2.2 常用的构造方法(练熟、记住)笔试考点2.3 常用的成员方法(练熟、记住)String类和数组之间的转换String类中字符的获取和使用案例:回文数判断String类实现字符串之间大小的比较String类实现各种方法的使用String类实现登录功能的模拟字符和字符串的正向(反向)查找String类中子字符串的获取2.4 正则表达式概念(了解)规则(了解)编程使用相关的方法使用总结2.1

2020-07-18 07:52:31 273

原创 第2章 稀疏数组与队列

稀疏数组与队列

2020-07-17 17:59:52 145

原创 第1章 数据结构与算法概述

数据结构与算法概述

2020-07-17 16:38:25 203 1

原创 Java核心类库-上(一)常用类的概述和使用

常用类的概述和使用一、常用类的概述和使用1.1 API的使用和常用包的概述包的名称和功能1.2 Object类的概述(重点)基本概念常用的方法一、常用类的概述和使用1.1 API的使用和常用包的概述查找:模块 -> 包 -> 类搜索包的名称和功能Java.lang包 - 该包是Java语言的核心包,并且该包中的所有内容由JVM自动导入如:System类、String类、…java.util包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类等如:Scanne

2020-07-17 14:13:05 501

原创 模块一内容总结

目录内容总结作业要点讲解作业一作业二作业三作业四作业五常见笔试题笔试题一笔试题二笔试题三笔试题四笔试题五内容总结作业要点讲解作业一for 循环一维数组(存放十二个月的每个月的天数) – 此方法简单分两个数组:闰年和平年也可以用switch case分支结构作业二双重for循环作业三拆解步骤:先生成一个1~33的随机数 ——> 生成第二个1~33的随机数,同时判断是否重复,重复后重新生成,以此类推 …作业四扩容时,利用移位运算符假设原数组的长度是 old,那么o

2020-07-14 21:30:50 255

原创 Java面向对象编程(五)特殊类

目录五、特殊类5.1 内部类(熟悉)基本概念分类5.2 普通内部类(成员内部类)定义使用方式5.3 静态内部类定义使用方式5.4 局部内部类(方法内部类)定义使用方式5.5 回调模式概念5.6 匿名内部类(重点)开发经验分享匿名内部类的语法格式(lamda)5.7 枚举类型(熟悉)基本概念和自定义实现枚举类型的定义自定义类和枚举类在switch中的使用区别Enum类的概念和方法五、特殊类5.1 内部类(熟悉)基本概念当一个类的定义出现在另一个类的类体中时,那么这个类叫做内部类(Inner),而这个

2020-07-12 16:49:55 262

原创 Java面向对象编程(四)多态

目录四、多态和继承类4.1 多态概念语法格式4.2 案例:Shape类和Rect类的实现四、多态和继承类4.1 多态概念多态主要指的是同一事物表现出的多种形态饮料:可乐、雪碧、红牛、脉动、…人:学生、教师、工人、…语法格式父类类型 引用变量 = new 子类类型();如:Shape sr = new Rect();sr.show();总之一句话:父类类型的引用指向子类类型的对象4.2 案例:Shape类和Rect类的实现...

2020-07-10 00:02:42 260

原创 Java面向对象编程(三)static 关键字和继承

目录三、static关键字和继承3.1 static关键字(重点)(1) 基本概念(2) 使用方式3.2 构造块和静态代码块(笔试)笔试3.3 main方法详解3.4 案例:Singleton类的封装(重中之重)3.5 单例设计模式概念实现流程实现方式3.6 继承 extends(重中之重)概念特点(以及super关键字的使用)方法重写 Override概念原则3.7 权限修饰符 和 包package权限修饰符包 packagepackage语句的由来包的定义定义包的规范包的导入3.8 final 关键字(

2020-07-09 08:50:33 253

原创 Java面向对象编程(二)方法和封装

目录二、方法和封装2.1 构造方法概念和使用默认构造方法作用2.2 方法重载(Overload)2.3 案例:Person类中重载的使用2.4 方法重载的实际意义2.5 this关键字基本概念工作原理使用方式二、方法和封装2.1 构造方法概念和使用// 构造方法名与类名完全相同,且没有返回值,连void也不许有class 类名 { 类名(形参列表) { 构造方法体; }}默认构造方法当一个类中没有定义任何构造方法时,编译器会自动添加一个无参空构造构造方法,叫做默认/缺省构造方法,

2020-07-07 18:05:17 301

原创 Java面向对象编程(一)类与对象

目录一、类与对象1.1 对象和面向对象编程的概念1.2 类和对象的概念1.3 类、对象、引用的定义类的定义成员变量的定义对象的创建引用的定义1.4 案例:Person类Person类的定义Peson类代码的执行流程和内存分析一、类与对象1.1 对象和面向对象编程的概念万物皆对象面向对象:以属性和行为的观点去分析现实生活中的事物面向对象编程:先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程精髓:封装、继承、多态1.2 类和对象的概念对象主要指现实生活中客观存在的实体,

2020-07-06 12:50:15 293

原创 Java语言基础(五)数组

Java语言基础(五)五、数组及其应用5.1 一维数组的基本概念5.2 一维数组的声明和使用五、数组及其应用5.1 一维数组的基本概念当需要在Java程序中记录单个数据内容时,则声明一个变量即可当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语言中体现为一种引用数据类型5.2 一维数组的声明和使用语法格式数据类型[ ] 数组名称 = new

2020-07-02 16:14:05 404

原创 Java语言基础(四)流程控制语句

Java语言基础(四)四、流程控制语句(顺序/分支/循环)4.1 分支结构的概念4.2 if分支结构4.3 if else分支结构4.4 if else if else4.5 案例:个人所得税计算4.6 switch case分支结构4.7 循环结构的概念4.8 for循环4.9 for循环打印奇数4.10 continue4.11 break4.12 break 跳出多层循环4.13 for循环实现猜数字游戏4.14 双重for循环4.15 双重循环实现素数打印(除到平方根)4.16 while循环4.1

2020-07-01 22:40:50 417

原创 Java语言基础(三)运算符

Java语言基础(三)三、运算符3.1 算术运算符3.2 算术运算符的注意事项3.3 算术运算符的案例(实现时间拆分)3.4 字符串连接符3.5 关系运算符/比较运算符3.6 自增减运算符(笔试)前后加加的区别笔试考点3.7 逻辑运算符3.8 逻辑运算符的短路特性(笔试)3.9 条件运算符/三目运算符3.10 赋值运算符(笔试)考点3.11 移位运算符(了解)3.12 位运算符(了解)3.12 运算符的优先级总结三、运算符3.1 算术运算符+-*/ (正斜杠,撇正捺反)% --> 取余

2020-07-01 22:40:26 340

原创 Java语言基础(二)变量和数据类型

Java语言基础(二)二、变量和数据类型2.1 变量的基本概念2.2 变量的声明和使用2.3 变量使用是注意事项2.4 标识符的命名规则(笔试)关键字2.5 变量输入输出的案例实现2.6 变量输入输出案例的优化和手册介绍2.7 数据类型的分类2.8 常用的进制2.9 十进制与二进制之间的转换(1)正十进制转换为二进制的方式(拆分法)(2)负十进制转换为二进制的方式原码、反码、补码(二进制数的码制)判断一个二进制数的正负情况(3)正二进制转换为十进制的方式(加权法)(4)负二进制转换为十进制的方式2.10 单

2020-07-01 22:39:40 283

原创 Java语言基础(一)初识计算机和Java语言

Java语言基础一、 初识计算机和Java语言1.1 计算机的基本概念1.2 常见的主要硬件1.3 主要硬件的讲解1.4 常见的主要软件1.5 计算机的体系结构1.6 计算机语言的概述1.7 Java语言的发展1.8 Java语言的主要版本1.9 JDK安装目录相关概念jdk、jre、jvm之间的关系(掌握)1.10 编写Java程序的流程1.11 常见的错误和简化的编译运行1.12 注释和环境变量配置(掌握)1.13 跨平台原理总结二、变量和数据类型2.1 变量的基本概念2.2 变量的声明和使用2.3 变

2020-06-30 19:33:30 402

原创 大数据训练营开班仪式记录

时间:2020年06月29日首先,我学这门课程初心是什么?为了进入大数据行业,站在时代风口,而且是在尝试一个比较好的工作方式!!!为了以后的幸福生活!拉勾教育CTO马建春观点分享:1、数据时代2、未来最大的能源是数据内容有深度(分析源码)有广度这个课程不仅仅学习技术,而且要训练大数据的架构思维(贯穿于所有的实际案例)学习报告和简历直接发给HR手中以前大数据刚起来时,大数据人才大都是半路出家,企业内部人才孵化,很多人做大数据之前是做Java的做技术 交流很重要应癫老师分享 如何更好

2020-06-29 22:31:04 1062 3

JDK 11 API中文帮助文档.CHM

java11的说明文档中文版 本文件分为两个部分: Java SE Java平台标准版(Java SE)API定义了用于通用计算的核心Java平台。 这些API位于名称以 java开头的模块中。 JDK Java Development Kit(JDK)API特定于JDK,并不一定适用于Java SE Platform的所有实现。 这些API位于名称以 jdk开头的模块中。

2020-07-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除