- 博客(26)
- 收藏
- 关注
原创 java中的Stack解析
一、什么是StackStack就是栈,是一个重要的数据结构,它具有先进后出的特点。栈的入栈和出栈操作都在栈顶进行,也可以说是在栈的尾部进行。所以先存的要在后面才能取出来,所以栈具有先进后出的特点。二、源码解析2.1 栈的底层结构首先我们查看一下api 可以发现Stack继承的是Vector类,由此我们可以得出,栈的底层也是一个数组2.2 构造方法栈的构造方法只有一个 public Stack() { }创建一个空栈,这里我们不禁有一个疑问,既然它继承..
2021-11-29 20:13:24
2670
原创 设计模式之工厂模式
一、什么是工厂模式在日常生活中,如果我们需要造一辆车,那么我们需要很多零件去把车组装起来,而这些零件一般又是来自不同的工厂的。这就跟我们在编写代码的时候一样,有时候需要去创建一个非常复杂的对象,这时候我们就可以创建一个工厂类去专门创建这些零件。这就是我所理解的工厂模式。二、工厂模式的分类工厂模式是三种设计模式相近的总称,它一共有三种。分别是简单工厂模式、工厂方法模式、抽象工厂模式2.1 简单工厂模式专门定义一个类用来创建其它类的实例,被创建的实例通常都具有共同的父类。这里我们相当于是
2021-11-24 20:33:46
186
转载 jdk1.8新特性
1.lambda 表达式lambda表达式本质上是一段匿名内部类,也可以是一段可以传递的代码2.接口里的方法接口中可以定义默认实现方法和静态方法在接口中可以使用default和static关键字来修饰接口中定义的普通方法当一个类继承父类又实现接口时,若后两者方法名相同,则优先继承父类中的同名方法,即“类优先”,如果实现两个同名方法的接口,则要求实现类必须手动声明默认实现哪个接口中的方法。3.函数式接口函数式接口的提出是为了给Lambda表达式的使用提供更好的支持。什么是函
2021-11-18 19:56:07
62
原创 java中== 和 equals的区别
要想明白他们的区别,我们先把他们各自的用法搞明白。首先我们来看==一、==对于基本数据类型来说,==比较的是两个类型的值是否相同,相同则返回true,不相同就返回false代码示例:public class Test { public static void main(String[] args) { // TODO Auto-generated method stub int a = 1; int b = 1; int c = 2; float d = 3.1
2021-11-18 19:08:34
183
原创 泛型的协变与逆变
一、类型擦除首先看下面这段代码:按照Java重载来说,我参数列表不同,它是不会报错的,但是这里报了一个同名错误,这是因为 Java在编译的时候会把泛型,上面的<String>和<Integer>都给擦除掉。这就是java 的类型擦除。ps:这里并没有真正的擦除二、协变我们可以利用通配符来实现泛型的协变:<? extends T>子类通配符;这个通配符定义了?继承自T,可以帮助我们实现向上转换:现在list的类型是<? ..
2021-11-17 20:07:27
389
原创 二叉树的前序,中序,后序遍历
我们知道,二叉树的遍历有三种,分别是前序遍历、中序遍历和后序遍历,我们来看看这三种遍历的特性:一、前序前序遍历的基本思路是先遍历根节点,再遍历左节点,最后遍历右节点。我们在这里随便找一个二叉树给大家演示它的遍历先遍历根节点,这里的根节点是A,所以我们首先输出A,然后看他是否有左节点,有左节点就先遍历,然后输出B,然后发现B又有左节点,就继续遍历B的左节点D,然后输出D,再检查D是否有左节点,有就遍历,这里输出G,G是它的叶子节点了,没有子节点,然后去遍历D的右节点,输出H,再看H是否有左
2021-11-13 18:54:25
1004
原创 java中throw 和 throws的区别(面试题)
大家都知道java中拥有两种处理异常的关键字,throw和throws,今天我就来浅谈一下他们的区别区别1throw用在方法体内,后面跟的是异常类的对象名。public void checkEmpIDLength(String empID){ if(empID.length() != 6){ throw new IllegalArgumentException("员工ID异常"); } }throws用在方法声明的时候,后面跟的是异常的类名public vo
2021-11-12 19:42:28
368
原创 什么是哈希冲突?怎样解决哈希冲突?
首先,要明白哈希冲突,我们需要明白什么是哈希表。一、哈希表概念:哈希表(又叫散列表)是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。二、哈希冲突我认为哈希表其实就是一个存放哈希值的一个数组,哈希值是通过哈希函数计算出来的,那么哈希冲突就是两个不同值的东西,通过哈希函数计算出来的哈希值相同,这样他们存在数组中的时候就会发生冲突,这就是哈希冲突。就像是高
2021-11-10 17:33:07
16565
原创 java 中类的加载顺序
父类public class Animal { public String name; public int leg; static { System.out.println("这是父类的static代码块"); } { System.out.println("这是父类的代码块"); } public Animal() { System.out.println("这是父类的构造方法"); } public void enjoy() { System.out.print
2021-11-01 19:31:25
2965
1
原创 什么是值传递和引用传递?
一.概念按值传递:方法接收的是调用者提供的值 按引用传递:方法接收的是调用者提供的变量地址二.分析首先,java数据类型分为基本数据类型和引用数据类型,基本数据类型包括byte,short,int,long,float.double,char,Boolean.引用数据类型String,以及new出来的对象,值传递是相对于...
2021-10-29 10:53:33
164
原创 1. JVM运行原理。2. Float类型和long类型那个取值范围更大。3. 数据类型解析
1.JVM运行原理首先要对字节码文件进行类的加载,进行类的加载时需要java类库的支持,然后通过字节码解释器和JIT即时编辑器分别执行引擎,最后将结果输出到硬件上.2.float类型和long类型哪个取值范围更大float类型在java中占四个字节,long类型占八个字节,但是float类型的取值范围比long类型的取值范围更大,这是因为float类型的32位,被分成了几个区域,第一位是符号位,第二位到第九位为指数,最后第十位到第三十二位为尾数位.所以它的计算公式为V=(-1).
2021-10-18 22:15:55
166
原创 rhcsa移动,复制文件,以及创建删除目录文件
在根下创建一个目录ceshi,在测试目录下创建一个user目录,将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中,给/ceshi//user/passwd文件创建一个硬链接文件为passwd.bak,给/ceshi/user/shadow文件创建一个软链接为sh.link。使用代码[root@localhost ~]# mkdir /ceshi/进行创建并且查看根目录下是否有这个目录因为要把另外的文件复制到/ceshi/user下,所以我们在ceshi目录下再
2021-09-14 15:35:48
127
原创 1、使用思维导图工具画出linux的文件系统层级结构图(其中要指出不同文件的文件类型且简要说明不同文件的作用)2、总结出vim的三个模式中你认为实用的命令3、找到所有你学过的外部命令的可执行文件,
1.思维导图:总结出vim的三个模式中你认为实用的命令.一般模式:gg 跳转到文档首部行首 yy 复制光标所在行 u 撤销当前操作$行尾^行首n[enter] n为数字,光标向下移动n行插入模式:i 在光标前插入I在光标所在行第一个非空格符前插入a 在光标后插入A 在光标所在行末尾插入s 删除光标所在位置字符并插入S 删除光标所在行并插入o 在光标所在行...
2021-09-12 11:34:43
110
原创 HCIA综合实验
需求图:第一步,进行网段的划分,从图中我们可以看出,该网络共有七个网段,有两个网段已经有了ip地址,所以我们只需要将192.168.1.0/24网段划分成为五个网段,最后得到的结果如图中所示。第二步,配置交换机,创建vlan 配置access和trunk干道交换机1:交换机2:第三步,配置路由器,配置各个接口和子接口的ip地址,子接口还需要开启arp广播,开启ospf协议,由于pc1-pc4需要自动获取ip地址,所以要创建ip地址池,并且在对应的接口上设置全局...
2021-09-12 11:32:05
132
原创 将虚拟机的网络连接模式分别调换成仅主机模式、nat模式、桥接模式并获取ip地址使用ssh通过不同用户远程连接
nat模式:1.首先,在虚拟机内使用dhcp获取ip地址2.其次,在moba内通过远程连接登录root:ssh root@192.168.140.128登录用户:ssh chenshilin@192.168.140.128、3.上网测试能上网仅主机模式:1.先将模式设置成为仅主机模式,再通过dhcp获取IP 再通过moba来远程连接2.远程登录登录root:ssh root@192.168.144.128root@192.16.
2021-09-11 19:33:14
355
原创 linux文件系统的权限和磁盘分区
1、添加两块5g大小的磁盘,将第一块磁盘的分区分为两个主分区并格式化为xfs的文件系统类型,第二块磁盘的分区分为一个逻辑分区并格式化为ext4的文件系统类型。2、将三个分区分别开机自动挂载在/disk1,/disk2,/disk3目录上。3、在/disk1目录中创建一个普通文件,该文件的所属者为redhat,redhat可以查看并修改该文件内容,xiaoming和wukong用户可以查看该文件内容,剩下的其他用户对于该文件没有任何权限。4、在/disk2目录中创建一个ceshi目录,任何人在该目录下面
2021-07-22 23:55:43
399
原创 linux用户管理实验
1、新建几个普通用户wukong,wuneng,wujing,他们都属于xiyouji组的成员,其中wujing没有和系统交互的shell。2、wukong和wuneng的密码都为redhat。3、通过sudo使得wukong可以使用wuneng和wujing的权限在他们的家目录下创建普通文件file。4、通过sudo使得wukong可以将密码配置文件中自己的密码信息相关内容保存至自己家目录下的mima文件。5、创建用户和组,新建一个名为adminuser的组,组id为3333;新建一个名为xiao
2021-07-21 15:09:48
693
原创 在VMware上如何创建虚拟机以及安装linux操作系统
1.在安装之前首先退出各种杀毒软件,否则有可能会安装失败。2.在安装之前下好rhel8或者centos8系统镜像,保存在电脑上,这里呢我使用的是centos8.3.下载好vmware workstation软件,并安装在你的windows上4.打开这个软件,选择创建新的虚拟机,点击自定义5.硬件兼容性选择最新的版本,这里我使用的是16版本6.选择稍后安装操作系统7.下一步选择linux系统 16版本可以选择到 8 的版本,12版本最多只能选择到7的版本8.
2021-07-16 17:16:58
113
原创 ensp静态路由综合练习
题目如下:第一步,划分网段从图中我们可以看出,这个网络中有15个局域网,但是R5的环回地址固定了,所以我们只需要划分出14个网段。划分的网段如下:192.168.1.0/28192.168.1.16/28192.168.1.32/28192.168.1.48/28192.168.1.64/28192.168.1.80/28192.168.1.96/28192.168.1.112/28192.168.1.128/28192.168.1.144/281
2021-07-12 18:32:32
762
原创 form表单
HTML 表单用于搜集不同类型的用户输入。1.form表单的属性1.1action属性action属性是表单提交数据时发送到的地址,用于跳转,要结合input 提交按钮使用action=“跳转地址”1.2 method属性用于规定表单提交数据时用的http请求方法一般有get和post两个取值,默认取值为get两者都是让后台接收到提交的数据,但是两者也又区别get 请求会在地址栏暴露出提交的信息,是不安全的post请求不会暴露信息,是安全的。2.form表单的元素
2021-05-29 14:20:13
167
原创 table表格
一.表格布局中的标签标签 用途 table 用来定义过一个表格 thead 定义表格的头部 tbody 定义表格的主体部分 tfoot 定义表格的尾部 tr 定义表格的行 td 定义表格的列 th 定义表格的表头(字体会加粗) 代码示例:<!DOCTYPE html><html lang="en"><head> <meta ...
2021-05-29 10:48:50
246
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人