自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 数据结构之链表及LinkedList源码分析

链表1:概念​ 链表(Linked list)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一 个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。2:存储结构​ 相比数组,链表是一种稍微复杂一点的数据结构。对于初学者来说,掌握起来也要比数组稍难一些。这两个非常基础、非常常用的数据结构,我们常常将会放到一块儿来比较。所以我们先来看,这两者

2021-03-08 16:53:00 192

原创 数据结构之数组及ArrayList源码分析

数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。这里我们要抽取出三个跟数组相关的关键词:线性表,连续内存空间,相同数据类型;数组具有连续的内存空间,存储相同类型的数据,正是该特性使得数组具有一个特性:随机访问。但是有利有弊,这个特性虽然使得访问数组边得非 常容易但是也使得数组插入和删除操作会变得很低效,插入和删除数据后为了保证连续性,要做很多数据搬迁工作。逻辑结构和物理结构所谓的数组的逻辑结构指的是我们可以用什么的表示方式来描述数组元素,比如有一个数组 a,数组中有

2021-03-03 20:04:51 195 1

原创 MySQL中的存储过程、变量、条件语句、循环语句

存储过程1、什么是存储过程​ 是数据库一个重要的功能,是为了以后使用保存一条或者多条MySQL语句的集合。存储过程思想上就是数据库sql语言层面代码的封装与重用。2、为什么使用存储过程​ a. 把处理封装在容易使用的单元中,简化操作​ b. 防止错误 保证了数据一致性​ c. 简化对变动的管理(修改对应的表名、列名等 修改对应存储过程的代码,对于使用的人不需要知道变化)​ d. 提高性能​ e. 灵活总结:简单 、安全、高性能MySQL在5.0开始支持存储过程存储过程的格式-- 存

2020-11-12 12:34:56 401

原创 MySQL中的视图、索引

MySQL视图1.MySQL视图(view):是一种虚拟存在的表,和真实表一样,视图也是由列和行构成的,但是视图中并不存在实际的数据,实际数据在原有表中。​ 数据库中只存放了视图的定义,并没有存放视图中的数据库,这些数据都存放在定义视图查询所引用真实表中。USE myschool;SELECT * FROM student;-- 创建语法 CREATE VIEW 视图name AS select语句CREATE VIEW vi_student_gradeASSELECT student.s

2020-11-10 20:38:16 231

原创 MySQL中的事务

MySql事务1.什么是事务:是将一组sql语句放在同一批次内去执行,如果一个sql语句出现了错误,则该批次内所有的sql都将被取消执行。mysql事务只支持InnoDB和BDB数据表类型2.事物的特性:必须具备四个属性原则-简称ACID属性 包括原子性、一致性、隔离性、持久性 。A-原子性:事务是最小的单元 不可再拆分C-一致性:事务要求所有的DML语句必须保证同时成功或者同时失败I-隔离性:事务与事务之间执行具有隔离D-持久性:事务的保证,事务终结的标志(数据持久的保存到硬盘文件中)3

2020-11-10 16:24:40 206 1

原创 JAVASE-27: 多线程概述及使用

多线程要想说线程,首先必须得聊聊进程,因为线程是依赖于进程存在的。什么是进程呢?通过任务管理器我们就可以看到进程的存在。进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。多进程的意义:单进程计算机只能做一件事情。而我们现在的计算机都可以一边玩游戏(游戏进程),一边听音乐(音乐进程),所以我们常见的操作系统都是多进程操作系统。比如:Windows,Mac和Linux等,能在同一个时间段内执行多个任务。对于单核计算机来讲,游戏进程和音乐进程是同时

2020-09-07 18:07:42 237

原创 JAVASE-26: IO流之其他的一些字符流、字节流

1. 数据输入输出流DataOutputStream写-DataInputStream读怎么写的就怎么读,能够读写基本数据类型(ctrl+q可以查看传入什么参数)特有方法:DataOutputStream 写writeInt(); writeDouble(); writeBoolean(); writeUTF();DataInputStream 读readInt(); readDouble(); readBoolean(); readUTF();public static void main

2020-09-04 10:52:03 139

原创 JAVASE-25:IO流之字节流 字符流

IO按照流向划分,分为输入流和输出流(我们站在内存角度看输入/输出);按照读写文件类型的划分,我们分为字节流和字符流。字节流可以读写任意类型文件字符流只能读写文本文件1.字节流字节流的抽象基类:InputStream ,OutputStream字节输入流(读)–父类InputStream–子类ByteArrayInputStream 、FileInputStream 、ObjectInputStream字节输出流(写)–父类OutputStream–子类ByteArrayOutputStr

2020-08-20 22:04:23 226

原创 JAVASE-24:IO流预备知识之File类及其基础功能

File类文件和目录路径名的抽象表示形式,这个File类可以用来表示文件,也可以用来表示目录。构造方法:File(String pathname):根据一个路径得到File对象。public static void main(String[] args) { // File(String pathname); // 绝对路径:包含盘符号的一个详细路径。 // 相对路径:不含有盘符号的路径。Java中的相对路径---Java工程的文件夹的根目录 File file

2020-08-11 17:26:56 194

原创 JAVASE-23:IO流预备知识之异常及其处理

IO流:用来处理设备之间的数据传输。数据在电脑中以文件形式来体现,传输过程中可能会出现一些异常,我们要对这些异常进行处理,所以我们在学习IO流之前,需要先学习 文件(File类)和异常。异常异常就是Java程序在运行过程中出现的错误。异常的分类:1.骑自行车旅游–车胎没气-,这个问题对于他来说是个小问题-可以选择解决可以不解决(运行期异常)。2.也有可能骑着骑着,车胎飞了,那这个问题就是一个严重性问题,他无法解决(Error)。3.还有一种情况,就是在出门前,他检查了一下车闸,发现车闸松了,

2020-08-11 17:22:11 304

原创 JAVASE-22:Collections工具类,斗地主洗牌发牌、整理牌

Collections工具类针对集合操作 的工具类Collections成员方法public static < T > void sort (List < T > list):排序, 默认按照自然顺序public static < T > int binarySearch (List < ? > list, T key):二分查找public static < T > T max(Collection < ? > coll):

2020-08-08 21:38:53 207

原创 JAVASE-21:Map集合及其子类HashMap 、Hashtable、LinkedHashMap 、TreeMap

集合Map有一种数据比较常见,比如一个学号对应一个学生,这种键值映射关系的数据,为了方便操作,给我们提供了另一种容器,叫做Map:称之为双列集合,有键 有映射值,一个键只能映射一个值,键是唯一的,如果键相同,那么值会覆盖。所有的双列集合的数据结构,只跟键有关,跟值没有关系。Map接口和Collection接口的不同:Map是双列的,Collection是单列的;Map的键唯一,Collection的子体系Set是唯一的;Map集合的数据结构针对键有效,跟值无关;Collection集合的数据结构

2020-08-08 21:36:33 255

原创 JJAVASE-20:Set集合HashSet、LinkedHashSet和TreeSet的使用

Set集合概述及特点特点:1.可以去除重复;2.存取顺序不一致;3.没有带索引方法,不能使用for循环遍历,不能索引来获取,删除Set集合里面的元素。1.HashSet底层数据结构是哈希表(JDK1.7 数组+链表 JDK1.8 优化 数组+链表+红黑树)。元素无序(存取元素的顺序不一致)且唯一(元素不允许重复)。HashSet 不是线程安全的 集合元素可以是 null。哈希表:是一个元素为链表的数组,综合了数组和链表的优点 (像新华字典一样) (JDK1.7之前)。 哈希码值:是JDK

2020-08-06 23:16:49 231

原创 JAVASE-19:泛型、增强for、可变参数和asList()方法的使用

1.泛型概述和基本使用泛型:JDK1.5之后引入的一种机制。是一种把类型明确的工作,推迟到创建对象或者调用方法的时候,才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。泛型的格式:<数据类型> 这里的数据类型只能是引用数据类型泛型好处:(1): 把运行时期的问题提前到了编译期间;(2): 避免了强制类型转换、向下转型;(3): 优化了程序设计,解决了黄色警告线,提高代码的扩展性。注意:泛型只在编译期有效 但在运行期就擦除了。泛型基本使用:public stat.

2020-08-06 22:42:59 156

原创 JAVASE-18:集合之ArrayList、Vector、LinkedList

Java集合中List接口的实现类主要有ArrayList、Vector、LinkedListArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高Vector:底层数据结构是数组,查询快,增删慢 线程安全 效率低LinkedList:底层数据结构是链表,查询慢,增删快 线程不安全 效率高1.ArrayList的特有功能JDK1.8新增的一个方法也能遍历集合void forEach(Consumer<? super E> action) 执行特定动作的每一个元素

2020-08-06 22:31:30 151

原创 JAVASE-17:集合Collection、List

集合数组作为容器的不好之处 就是对容器中的元素进行操作时,不够方便,比如要增删数组中的元素,就不是那么方便了,因为数组一单定义,长度就不能改变了,JAVA为了我们更方便去操作容器中的元素,提供了一种新的容器,叫做集合。1.数组长度一单定义就固定了,集合长度是可变的;2.数组既可以存储基本数据类型,也可以存储引用数据类型,集合只能存储引用数据类型;3.数组只能存储同类型元素,集合可以存储不同类型的元素。Collection集合继承体系图:Collection的功能概述添加功能boolean

2020-08-05 07:23:33 188

原创 JAVASE-16:常见对象Date类、SimpleDateFormat类、Calendar类、BigInteger类

Date类表示特定的瞬间,精确到毫秒。构造方法空参构造:public Date()有参构造:public Date(long date)把一个long类型的毫秒值转换成一个日期对象(给计算机元年1970 01-01加上时间,形式是毫秒分时,填入括号中)public static void main(String[] args) { // 类 Date 表示特定的瞬间,精确到毫秒 Date date = new Date(); // Sun Aug 02 09:15:27

2020-08-04 22:02:21 158

原创 JAVASE-15:常见对象Math类、Random类、System类、BigDecimal类

Math类Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。成员变量:public static final double E 自然底数public static final double PI 圆周率成员方法:public static int abs(int a) 取绝对值public static double ceil(double a) 向上取整public static double floor(double a) 向下取整

2020-08-04 21:52:28 159

原创 JAVASE-14:正则表达式,匹配器模式器的结合使用

正则表达式正确规则的表达式,是一种独立的语法,很多语言都支持他,作用就是校验数据,符不符合定义的正则表达式。常用语法:定义正则表达式String regx='a'; //就代表一个字符aregx="[a,b,c]"; []-列表,是列举的a,b,c某一个就行regx="[a-z]"; 匹配a-z中某一个regx="[A-Z]"; 匹配A-Z中某一个regx="[a-zA-Z]"; 匹配a-z或A-Z中某一个regx="[0-9]"; 匹配0-9中某一个r

2020-08-04 21:39:36 162

原创 JAVASE-13:包装类和自动拆装箱机制

包装类案例:a. 将100转换为二进制、八进制、十六进制b. 判断一个数是否在int范围内public static void main(String[] args) { int num = 100; String s = Integer.toBinaryString(num); String s1 = Integer.toOctalString(num); String s2 = Integer.toHexString(num); System.out.pr

2020-08-04 21:34:03 113

原创 JAVASE-12:StringBuffer和Arrays类常用方法和功能

1. 字符串缓冲区 StringBuffer用+拼串效果不好 浪费时间和空间 因为字符串一单定义长度不能改变。StringBuffer - - 线程安全的可变字符序列。相当于一个字符容器,可以不断地往容器中追加字符。1.1 常用方法 功能new StringBuffer() :构造一个其中不带字符的字符串缓冲区 容量默认为16个字符容器名.capacity():获取容器容量 --16,一旦超过容量会自动扩容容器名.length():获取容器长度容器名.append():向容器中追加内容new

2020-07-30 19:58:21 148

原创 JAVASE-11:常用数组排序及其实现

数组排序把数组中无序的元素 通过交换、移动等方式,使数组中的元素成为一个有序序列。冒泡排序数组中的元素 两两比较 大的元素往后放,经过一轮比较后,最大的元素会出现在最后面。每一个数和自己后面的那个数相比,如果前面的比后面的大,就交换值,这样第一轮下来总共比较了arr.length-1次,最大的数就会出现在序列最后;那么第二轮要比较arr.length-1-1次将第二大的数排至倒数第二位…如此往复,就可以得到一个有序序列。for (int j = 0; j < arr.length - 1

2020-07-30 19:55:44 162

原创 JAVASE-10:equals()、clone()、Scanner()、String类

1. Object类的equals()方法比较两个对象(默认是比较地址值)是否相等// 源代码: public boolean equals(Object obj) { return (this == obj);}想比较地址值之外其他的,比如两个对象的成员变量是否相同,那么子类应该重写equals()方法,ctrl+o 选择equals 重写:@Overridepublic boolean equals(Object o) { if (this == o) {

2020-07-28 22:29:30 176

原创 JAVASE-09:参数传递、内部类的理解与常用类的学习

1. 参数传递形式参数的传递:a.当以后看到一个方法的形参 需要一个类类型,你就传递一个该类的对象(没有可以定义一个)。package org.westos.demotest;public class MyTest { public static void main(String[] args) { Student student = new Student(); set(student,20); student.show(new Stud

2020-07-26 00:26:43 182

原创 JAVASE-08:多态、抽象类、接口

1. 多态指的是一种事物在不同时刻,所表现出的不同状态1.1 多态的前提:a. 要有继承,没有继承,多态就无从谈起b. 要有方法重写(当然不重写也可以 ,但是会失去意义)c. 父类引用指向子类对象 — 父 f = new 子();public class MyTest2 { public static void main(String[] args) { Cat cat = new Cat(); cat.eat(); //采用多态的形式来

2020-07-26 00:11:20 132

原创 JAVASE-07:static关键字、代码块的概念和继承

练习:长方形类,定义一个长方形(Rectangle)类,定义求周长(length)和面积(area)的方法,然后定义一个测试类Test,进行测试。package org.westos.MXDX;public class Rectangle { private double Chang; private double Kuan; public Rectangle() { } public Rectangle(double chang, double kuan)

2020-07-25 23:58:35 154

原创 JAVASE-06:面向对象、this关键字、构造方法

面向对象:1.1内存图一个对象的内存图:a.MyTest.class类加载到方法区,调用主方法main() 入栈;b.在栈中运行main方法,当jvm看到Student时,会自动把Student类加载到方法区;当看到局部变量s时,会在栈中开辟一块空间;当看到new Student()时,会在堆内存中开辟空间,并将堆内存中的对应地址0x001赋值给s;还会拿到方法区的地址值指向方法区;c.在main方法中运行到s.name这一步时,s根据对象给他的地址值,去堆内存中找到相应的对象,再给堆内存中的变

2020-07-20 10:34:51 151

原创 JAVASE-05:二维数组、递归和面向对象

1. 数组(续)a. 数组长度一旦定义好 就固定了;b. 数组不但可以存储基本数据类型,还可以存储引用数据类型,引用数据类型包括数组、类、接口,也就是说new出来的数据就是引用数据类型。例3. 数组查表法 根据索引 查找对应星期技巧:快速生成方法getWeek(index,week);先写方法名 和 返回值 调用方法 然后用alt+enterreturn week[index];或String str = week[index];return str;package org.westo

2020-07-20 10:27:12 175

原创 JAVASE-04:循环、方法和数组

JAVASE-04:循环、方法和数组1.循环(续)1.1循环结构while语句的格式和基本使用int i=1(初始化条件语句);while(判断条件语句){​ 循环体语句;​ i++(控制语句);}执行流程:a:执行初始化条件语句;b:执行判断条件语句,看其返回值是true还是false,如果是true就继续执行,如果是false就结束循环;c:执行循环体语句;d:执行控制条件语句;e:回到b继续。与for相比,变量在循环语句之外,可以拿到变量的值for循环也可以通过下面的

2020-07-16 12:01:58 211

原创 JAVASE-03:运算符和语句

JAVASE-03:运算符和语句IDEA基础使用方法1.创建项目:在src下先建包,格式:命名-域名+功能名,例:com.baidu.video 再建类;2.右键 show in explorer 查看项目位置;3.生成主方法 敲psvm 快速生成输出语句sout;4.有红线-有语法错误;5.单行注释 ctrl+/ (多行注释内可套单行注释 但不能再套多行注释);6.多行注释 ctrl+shift+/ , ctrl+z 撤销;7.ctrl+alt+L可以排版代码;8.变量名.sou

2020-07-16 09:59:19 428

原创 JAVASE-02:常量、变量、运算符和数据类型转换方式

JAVASE-02:常量、变量、运算符和数据类型转换方式1.常量程序执行过程当中 其值不发生变化的量,在java中分为字面值常量和自定义常量字面值常量–整数常量 -- 100 200 3 小数常量 -- 3.123 4.21布尔常量 -- true false字符常量 -- 被单引号 所括起来的单个字符 'a' '1' 'A'字符串常量 -- 被双引号所括起来的单个或多个字符 ”a“ ”asd“ ”你好“ ”hello world“空常量 -- null

2020-07-12 15:16:48 234

原创 JAVASE-01:基础概念知识及学习环境配置

JAVASE-01:基础概念知识及学习环境配置Java语言发展史詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。Java语言平台版本J2SE(Java 2 Pl

2020-07-12 14:59:20 443

原创 Linux之在系统恢复过程中的常见问题

系统启动流程第一步: 电脑通电;第二步: BIOS(主板上的只读存储ROM中,basic input or output system),作用–硬件检测,激活硬件;第三步: grub系统引导(grub引导分为两个阶段):1)阶段1-grub磁盘引导阶段mbr(主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节dd if=/dev/zero of=/dev/vda bs=446...

2019-11-22 09:21:22 233

原创 Linux之Selinux的初级管理

1.什么是SelinuxSelinux-内核级加强型防火墙,Selinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统。对于linux安全模块来说,Selinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统。Selinux三个模式Enforcing 强制(强制模式)–SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的...

2019-11-22 08:42:00 162

原创 Linux之FTP文件传输协议部署及配置

<1>.什么是FTP 服务器?FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application).基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在 FTP 的使用当中,用户经常遇到两个概念:“下载...

2019-11-15 00:46:13 484

原创 Linux之LVM逻辑卷管理

<1>. 什么是LVM?LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。<2>. 为什么要使用LVM?在日常工作或者学习中,随着电脑的不断被使用,我们的磁盘空间可能会越来越小,这时候,我们不能直接更换大硬盘,因为硬盘有价,...

2019-11-14 23:11:22 170

原创 Linux之PXE网络安装

1.第三方软件仓库的搭建搭建第三方软件库,可以将从网上下载的所有软件包搭建为一个仓库,让yum在查找软件包的时候可以在该仓库中自动查找;所谓第三方,就是说当你使用某一的产品的时,那么这一产品就负责产品的售后,如果你将此产品的零件换为另一的零件,那么它就不再负责其产品的售后,另一的零件就是被替换零级产品的第三方。要搭建第三方软件库首先要创建一个目录,将该目录作为第三方仓库,将从网上下载的软件放入...

2019-11-08 08:24:56 235

原创 Linux之如何管理系统内存

1.MBR分区划分MBR分区时, 次反分为2部分,MBR+和磁盘分区MBR(512字节)=bootblader(446)+所有磁盘信息,每个分区占16个字节主分区:Primary(最多四个)+磁盘类型(2)MBR:主引导记录(Master Boot Record,缩写:MBR),MBR早在1983年IBM PC DOS 2.0中就已经提出,又叫做主引导扇区。之所以叫“主引导记录”,是因为它是...

2019-11-08 00:06:30 167

原创 Linux中的软件管理(上)

实验环境创建:配置本地yum源1.在创建前必须确保有一个与本机系统版本一致的镜像,创建一个目录/iso,可以用来挂载镜像,并把真机的镜像拷贝至虚拟机的/iso目录下;2.挂载镜像(挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件),Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目...

2019-11-01 04:32:50 241

原创 Linux中的网络设定

1.理解IPV4IPV4网络的定义:IPV4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。网络层提供了无连接数据传输服务,即网络在发送分组时不需要先建立连接,每一个分组(也就是IP数据报文)独立发送,与前后的分组无关。在IP网络上,如果用户要将一台计算机连接到In...

2019-11-01 01:26:12 667

空空如也

空空如也

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

TA关注的人

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