自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM之类加载器

在了解类加载机制前先看两张图java程序的执行流程图jvm的大致物理结构图Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。class文件有类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息,比如构造函数、属性和方法...

2019-09-29 23:17:56 129 1

原创 栈实现综合计算器(中缀表达式)

需求:使用栈来实现一个计算器 计算一个表达式的结果思路分析:我们定义一个index来遍历我们的表达式定义一个keepstring+=key帮助我们拼串如果发现key是一个数字,此时判断key’的下一个元素是不是数字,继续向后遍历,直到key的下一个元素不是数字时,将integer.parseint(keepstring)存入数字栈中如果kery是符号,那么1)符号栈如...

2019-09-27 16:51:27 171

原创 链表形式模拟栈的数据结构

我们用链表的形式来模拟栈的数据结构分析:1.入栈:可以链表节点的添加看作入栈的过程2.出栈:我们从栈中每取出一个数据,就拿到链表的尾部的值并从将尾部的节点删除3.显示栈中所有数据:...

2019-09-27 00:48:19 177

原创 java实现链表的原地反转

解题思路如果head.next为null 或者 head.next.next为null 就直接返回1.头节点为空,我们设置temp=head.next.next;2.让头节点的next指向空:head.next.next=null;(将第一个节点与后面的节点断开)3.当temp不为空时,进入循环,首先定义一个节点cur=temp.next(为了后续的遍历)4.让temp指向头节点的下一个...

2019-09-27 00:20:06 741

原创 栈的入门

栈的介绍1.栈是一个先入后出的有序列表2.栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表,允许插入和删除的一端,为变化的一段,称为栈顶,另一端为固定的一段,成为栈底。3.根据栈的定义可知,最先放入栈的元素在栈底,最后放入的元素在栈顶,而删除元素正好相反,最后放入的元素先删除,最后放入的元素最后删除。图解元素入栈元素出栈栈的应用场景子程序的调用,在跳往...

2019-09-26 23:16:18 182

原创 双向链表的实现(DoubleLinkedList)

首先对单链表的缺点做一个分析:单向链表查找的方向只能是一个方向,而双向链表可以向后查找单向链表不能自我删除,需要辅助节点,但是双向链表可以自我删除,所以前面我们单链表删除节点时,总是找到temp,因为我们要删除temp.next分析:双向链表比单向链表多了一个指向前一个节点的属性pre双向链表的遍历方式和单项链表一样,可以向前,亦可以向后查找添加(默认添加到最后一个节点):先找...

2019-09-26 14:51:51 793

原创 两个有序单向链表的结合,输出一个新的有序单向列表

分析:现在有两个有序的单向列表,要让他们合并为一个链表,而且保持有序1.我们采取将list1合并到list2上的方法也就是说双层遍历,里层为list2的遍历每次遍历到list1的辅助节点temp时,跟list2的每一个节点比较如果temp.no<temp2.next.no那么就把list2的节点链到temp2节点的后面。如果循环玩temp2仍然没有找到就将temp链到list2...

2019-09-25 18:31:06 227

原创 单向链表的反转(reverse)

现在有一个单向链表,我们要想办法将这个当前链表的节点反转过来思路分析:先定义一个空节点reserveHead定义一个辅助节点cur=head.next,以及一个空节点next记录cur节点的下一个节点(循环需要)遍历链表,每遍历到一个cur节点,将这个节点指向reserveHead节点的下一个节点(第一次不需要指向,因为第一次reserveHead节点为空)。将reserveHead...

2019-09-25 12:49:33 1818

原创 单链表应用实例

在学习单链表之前,先简单了解一下链表链表是有序的链表,但它在内存中是存储如下链表是以节点的方式来存储的,是链式存储每个节点包含data域、next域:指向下一个节点链表的各个节点不一定是连续存储链表分带头节点的链表和没有头结点的列表,根据实际需求来定单链表(带头结点)逻辑结构示意图如下:单链表的应用实例:使用带head头节点的单向链表实现水浒英雄人物的增删改查操作,1....

2019-09-25 01:22:13 2554

原创 数组模拟循环队列(CircleArrayQueue)

前面利用数组模拟队列,但是有一个问题,那就是队列只能使用一次,不能达到复用。 所以,将这个队列加以改进,改进为一个循环队列,来充分利用数组。 可以将数组看做一个环形的(通过取余数的方式来实现)思路分析front指向队列的第一个元素,初始值为0rear指向队列的最后一个元素的写一个位置,rare不存值,初始值为0这个队列的有效数据个数最大师size-1,也就是说数组的rare索引处...

2019-09-24 19:38:58 778

原创 数组模拟队列(queue)

队列介绍队列是一个有序列表,可以用数组或者链表实现遵循先进先出的原则:先存入队列的数据,要先取出,后存入的数据,要后取出使用数组模拟队列示意图数组模拟队列思路:队列本身是有序列表,如果使用数组的结构来存储队列的数据,则队列数组的声明如上图,maxSize是队列的最大容量。因为队列的的输出、输入分别从前后端来处理,所以需要两个变量fornt个rear分别记录前后端的下标,fro...

2019-09-24 12:40:41 1770 1

原创 稀疏数组(Sparsearray)

我们在了解稀疏数组之前先来看一个实际的需求上图中要记录棋盘的数据,可以用二维数组来记录,但是有很多没有意义的数据,所以可以使用稀疏数组来记录处理方法:1.记录二维数组一共有几行几列,有多少个不同的值2.把具有不值得元素行列及值记录在一个小规模的数组中,从而缩小程序的规模编程思路将二维数组转化为稀疏数组1. 遍历原始二维数组,获取有效数据的个数num for (int i=0;i...

2019-09-24 00:00:51 562

原创 基于mvc设计模式下的商品管理平台

源代码:https://github.com/jeffery11586/Leo-Messi1.数据库建表:create table jspproduct( id int primary key auto_increment, name varchar(30) not null, description varchar(100) , price int chec...

2019-09-23 18:27:52 1575 1

原创 MVC设计模式登陆验证

mvc设计模式下验证的流程:浏览器请求Servlet,Servlet获取表单中username和passwd,通过UserService接口中selectUsernameByName方法查询返回用户对象,UserServiceImpl通过调用UserDAO接口中的selectUsernameByname方法在数据库中查询并返回user对象(通过UserDAOImpl实现),一层一层返回给Serv...

2019-09-22 17:44:18 777

原创 jsp执行过程

运行原理当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用。当再次访问jsp页面时 跳过翻译和编译的过程 直接调用执行过程1、 客户端发出请求2、web容器将jsp转化为servlet代码(.java)3、web容器将转化为servlet代码编...

2019-09-22 14:15:39 107

原创 JSP基础语法

任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用jsp基础语法1. 脚本元素:脚本元素包括:声明脚本语法:<%! %> 用来声明成员变量和成员方法<%! int a=3; public int sum(int a,int b){...

2019-09-22 13:51:45 352

原创 监听器:统计在线人数

在线用户使用HttpSessionListener监听器统计每当一个session会话建立 在线用户人数+1使用ServletRequestListener监听器统计用户信息新建一个CountListener public void sessionCreated(HttpSessionEvent se) { /* Session is created. */ ...

2019-09-22 01:55:04 264

原创 Servlet设置请求乱码和响应乱码(过滤器)

**请求乱码**就是浏览器输入的数据提交给服务器后,服务器端接收到后乱码。解决:request.setCharacterEncoding(“utf-8”);注意:一定要在调用request.getParameter()之前加上。不能在其之后。响应乱码服务器端将数据响应给浏览器后,浏览器看到乱码。解决:response.setContentType(“text/html;charse...

2019-09-22 00:50:15 468

原创 Servlet转发和重定向区别

转发新建AServlet通过转发器转发到BServlet@WebServlet(name = "AServlet", urlPatterns = "/AServlet")public class AServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletRes...

2019-09-21 23:40:02 228

原创 Servlet会话技术

会话技术会话可以简单理解为,一个用户打开一个浏览器,在同一个WEB应用上,点击多个超链接,访问多个WEB资源,然后关闭浏览器,那这整个过程我们称之为一个会话作用:会话技术可以保存用户在会话过程中所产生的数据会话技术也可以让用户在同一个会话中实现数据的共享会话技术的分类:1.cookiecookie是一种客户端技术,程序可以把每一个用户特有的数据,以响应头set-cookie发送给每...

2019-09-21 21:39:42 813

原创 ServletContext总结

ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。Servlet...

2019-09-21 14:25:29 117

原创 stringbuffer

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的...

2018-12-27 21:55:43 184

原创 string类

public class text { public static void main(String[] args) { String s = new String(&quot;梅西&quot;); String s1 = new String(&quot;梅西&quot;); System.out.println(s==s1);//就比较的是地制值 System....

2018-12-27 21:49:53 78

原创 scanner

Scanner(InputStream source) 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。**public static final InputStream in“**标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入常用方法nextXXX() 获取各种类型的数据hasNextxxx() 判断是否录入的是该种数据public class t...

2018-12-27 21:10:18 246

原创 object类

类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。public class text2 { public static void main(String[] args) { Object o = new Object(); System.out.println(o);/打印地址值 ...

2018-12-27 21:03:37 99

原创 JAVA接口

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。在JDK1.8之后在接口中可以利用default定义默认方法接口的一些特点1.接口中是用来定义一些扩展功能,...

2018-12-19 18:07:12 137 2

原创 JAVA抽象类

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类的特点1.抽象类不能直接实例化2.抽象类中可以有抽象方法也可以有非抽象方法3.如果一个类中有了抽象方法,此类必需为抽象类4.抽象方法带有强制性,要求子类必需重写,非抽象方法不带有强制性,子类可以继承也可以重写5.抽...

2018-12-19 17:45:17 74

原创 多态

多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。多态性是对象多种表现形式的体现多态存在的三个必要条件1.继承2.重写3.父类引用指向子类对象多态的优点1.消除类型之间的耦合关系2. 可替换性3. 可扩充性4. 接口性5. 灵活性6. 简化性多态中成员访问的规则成员变量:编译看左边,运行看左边成员方法:编译看左边,运...

2018-12-19 17:33:36 81

原创 数组

一维数组数组是存储同一种数据类型多个元素的集合。也可以看成是一个容 器。数组既可以存储基本数据类型,也可以存储引用数据类型。数组定义格式格式1: 数据类型[] 数组名;格式2: 数据类型 数组名[];数组的初始化Java中的数组必须先初始化,然后才能使用。所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。初始化的分类:a:动态初始化: 只指定长度,由...

2018-12-07 15:55:51 88

原创 几个常用的循环语句

for循环在Java程序中,要“逐一处理”或者说“遍历”某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现数组的遍历 public static void main(String[] args) { //数组的遍历 int []arr={1,5,6,9,8}; for (int i = 0; i &lt; 5...

2018-12-07 15:32:30 4417

原创 键盘录入数据

键盘录入数据 Scanner使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流 、字符串中解析出基本类型值和字符串值。Scanner类提供了多个构造器,不同的构造器可接受文件、输入流、字符串作为数据,用于从文件、输入流、字符串中解析数据。流程:1.导入包2.创建对象3.提示语句4.获取值下面程序获取用户输入的整数...

2018-12-07 14:32:27 850

原创 逻辑运算符

逻辑运算符逻辑运算符的分类:&amp;(并且):与运算,运算两端都是真,结果才为真,只要任意一段为假,最终结果都为false|(或者):或运算,运算两端任意一端为真,结果都为真,只有两段都为假,结果才为假!(非):为取反 true变false false变true^(异或):相同为false 不同为true&amp;&amp;(短路与):两个 &amp; 只要前一个运算结果为fa...

2018-12-07 14:17:09 119

原创 JDK的下载安装以及环境变量的配置

@[TOC顶顶顶](这 里写自定义目录标题欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客...

2018-11-28 17:48:55 94

原创 Java day02

1、什么是常量?常量的分类?字面值常量表现形式有哪些?(1)在程序执行的过程中,其值不发生改变的量(2)分类:     A:字面值常量     B:自定义常量(后面讲)(3)字面值常量     A:字符串常量 "hello"     B:整数常量     12,23     C:小数常量     12.345     D:字符常量     'a','A','0'...

2018-11-28 17:22:42 105

原创 Java day01

1、独立编写Hello World程序。   class Hello {       public static void main(String[] args){           System.out.println("HelloWorld");       }   }2、JDK,JRE,JVM分别是什么?(1)作用JVM:保证Java语言跨平台     JRE:...

2018-11-28 17:15:47 91

原创 LINUX基础7

###lvm###pv     ##物理卷被lv命令处理过的物理分区vg ###物理卷组被组装到一起的物理卷pe ##物理扩展lvm设备的最小单元,lvm是pe的整数倍lvm ##逻辑卷直接使用的设备可以增大缩减并保持原有数据不变###lvm建立1.分区并指定标签为8epvcreat  /dev/vbd1vgcreat vg0 /dev/vdb1...

2018-11-09 21:03:29 215

原创 LINUX基础6

###linux系统中的磁盘管理##1.本地存储设备的识别fdisk   -l    #真实存在的设备cat /proc/partitions #系统识别的设备blkid        #系统正在使用的设备df        #系统正在挂在的设备##2.设备的挂载和卸载1.设备名称/dev/xdx    #/dev/hd0 /dev/hd1 /dev/sda /dev/sdb /d...

2018-11-01 19:19:40 150

原创 LINUX基础5

###1.系统延时任务[root@server ~]# at 17:30  ##设定任务执行时间at&gt; rm -fr /mnt/* ##任务动作at&gt; &lt;EOT&gt; ##用ctrl+d 发起任务 [root@server ~]# at now+1min ##延时一分钟at&gt; rm -fr /mnt/*at&gt; &lt;EOT&gt;...

2018-11-01 19:10:15 98

原创 kickstart自动安装脚本

###kickstart自动安装脚本###1.在服务端安装sysytem-config-kickstart服务2.在服务端安装httpd服务和dhcpd服务  3.配置dhcpd服务,编辑/etc/dhcpd/dhcpdconf文件 4.打开一台虚拟机测试得到分配的ip 2.system-config-kickstart ...

2018-11-01 15:30:46 115

原创 LINUX基础4

###虚拟机管理##1.脚本安装虚拟机#!/bin/bashvirt-install \--cdrom /home/kiosk/rhel-server-7.0-x86_64-dvd.iso \--ram 1024 \--cpus 1 \--disk /var/lib/libvirt/images/test.qcow2,bus=virtio,size=10 \--name test...

2018-10-25 18:14:03 203

空空如也

空空如也

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

TA关注的人

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