- 博客(36)
- 收藏
- 关注
原创 Java实现ElGamal算法签名
今晚有点迟了,具体说明明天再来补 Elgamal.javapackage elgamal;import java.math.BigInteger;import java.lang.Math;import java.util.Random;import java.io.*;public class ElGamal { private static final BigIn...
2018-06-20 23:09:10 2746
原创 Spring MVC 的 开发流程与执行流程
Spring MVC应用开发流程1.在web.xml中定义前端控制器DispacherServlet来拦截用户的请求 2.定义处理用户请求的Handle类,可以通过实现Controller接口或者使用@Controller注解来实现 在Spring MVC中,控制器实际上由两部分组成,一是拦截用户请求的前端控制器DispatherServlet和实际处理业务的Controller类 3....
2018-05-20 23:00:53 631
原创 Java内存区域与内存溢出异常
运行时数据区Java虚拟机运行时数据区包括:程序计数器,虚拟机栈,本地方法栈,堆,方法区,运行时常量池(方法区的一部分)。程序计数器==线程私有==,指向下一条要执行的指令。程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号执行器。此内存区域是唯一一个在JVM规范中没有规定任何OOM情况的区域。Java虚拟机栈==线程私有==,==生命周期与线...
2018-04-23 21:47:52 231
原创 ssm框架整合总结
ssm各层持久层:DAO层(mapper) DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此, DAO层的设计首先是设计DAO的接口, 然后在Spring的配置文件中定义此接口的实现类, 然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰, DAO层的数据源配置,以及有关数据库连接的参数都在Sp...
2018-04-17 22:27:16 531
原创 剑指Offer(2) 6-10题
第6题:旋转数组的最小数字题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路: 第一个想到的方法肯定是遍历,每次遍历的时候比较arr[cur]和...
2018-04-11 22:26:47 167
原创 剑指Offer(1) 1-5题
第一题 :二维数组中的查找题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 由于这是一个有规律的数组,可以从数组的右上角(cur)开始查找。 如果target>cur,说明target只可能在cur的下方,对应的row++。 如果target...
2018-04-10 22:56:42 192
原创 Java网络编程——模拟实现客户端与服务端之间的猜数游戏
游戏的服务端package cn.lawliet.bingogame;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSoc...
2018-04-09 19:24:42 3561
原创 Java 网络编程——多线程下载图片
利用TCP连接实现+多线程模拟实现客户端服务端下载图片过程服务端代码package test;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;im...
2018-04-02 10:26:04 787
原创 剑指Offer 二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:最简单暴力的方法就是遍历二维数组,不过这样肯定在时间上过不了的。。由于这个二维数组是有规律的,一开始可以选择右上角的元素作为cur。如果target是比cur小,就往左走。如果target是比cur大,就往右走。如果出...
2018-04-02 08:52:38 184
原创 Java 使用List,Set将Person数组中的重复元素删除
利用到了Set集合的不可重复性。先将数组转化为ArrayList类型,再讲所有元素添加到Set中去。由于Set是不能添加重复元素的,所以重复元素就自动删除了。package test;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;public class 将Person数组...
2018-04-01 17:35:59 389
原创 Java 使用比较器对TreeSet进行自定义排序
比较器是个很方便的工具一般定义格式为public static class 类名 implements Comparator{ @Override public int compare(Object o1, Object o2) { // TODO Auto-generated method stub retu...
2018-04-01 16:53:32 1213
原创 Java 使用LinkedList实现扑克牌类
对LinkedList熟悉的一个小练手程序package test;import java.util.LinkedList;class Poker{ String color; String num; public Poker(String color, String num) { super(); this.color = c...
2018-03-31 21:53:20 425
原创 Java 使用ArrayList集合实现注册登陆功能
动手写了才对知识点有更深的感觉再次体会到了Java是完全面向对象的语言,调动对象做事情对迭代器的使用有了初步的认识要遍历ArrayList集合的话有2种方法1.使用toarray功能转为数组,再进行遍历2.创建一个集合的迭代器,使用迭代器去遍历集合package 第15天;import java.util.ArrayList;import java.util.It...
2018-03-30 17:40:54 2812
原创 Java 线程基础和实现多线程
线程基础1)进程的概念正在执行的程序称作为进程。进程负责了内存的划分2)线程一个程序可能包含多个并发运行的任务,一个任务从头至尾的执行流。可以在一个程序中并发地启动多个线程。3)多线程在一个进程中有多个线程同时在执行不同的任务。运行一个Java程序,jvm在运行的时候会创建一个main线程执行main方法中的所有代码。一个Java应用程序至少有几个线程?一个是主线程...
2018-03-29 19:49:23 268
原创 Java super关键字详解
因为之前学习C++的时候,只接触过this关键字,并没有super关键字,这里记录一下super关键字的相关知识点super关键字:super关键字代表了父类空间的引用。super关键字的 作用:子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类...
2018-03-29 09:23:38 870
原创 不使用第三个变量交换两个数的值
在很多的时候,都需要用到交换2个数的值。比如在快排算法里,就需要用到swap函数。在这里提供2种不需要创建第三个变量就能交换2个变量的值的方法。这里以快排中,交换已知2个下边对应的元素作为例子先来看需要创建第三个变量的方法:public static void swap(int[] arr, int i, int j) { int tmp = arr[i]; ...
2018-03-28 20:21:06 665
转载 Java String,StringBuffer,StringBuilder 的区别
转载自 https://www.cnblogs.com/su-feng/p/6659064.html这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:String为字符串常量,而String...
2018-03-28 19:50:06 156
原创 网易2018年春招 校招编程题
时间:2018.3.27 申请岗位:测试实习生(网易杭州)-音乐事业部 记录一下自己人生的第一次笔试吧。。自己的水平还是太差了,希望以后自己翻到这篇文章的时候能够有进步。20道选择题:其中一半都是测试方面的题目,不清楚啊。剩下10道,一半是数据结构(只记得有个算hash散列表了),一半是操作系统(死锁,进程线程之类的)。 2道问答题:第1道题目叙述了充值网易云音乐会员的过程,在客户端,充...
2018-03-27 22:31:08 564 2
原创 百度2017春招笔试题
第一题题目:度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述:首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1思路:先把数组从小到大排序,此时第0项...
2018-03-25 22:37:27 489
原创 Java编程50题(5) 41~50题
2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems第41题题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一 个扔入海中,拿走了一份。第二只猴子把剩下的桃...
2018-03-25 16:27:13 322
原创 Java基础50题(4) 31~40题
2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems第31题题目:数组的逆序 思路:用Collections.reverse()实现package Java基础50题;import java.ut...
2018-03-25 16:17:27 360
原创 Java基础50题(3) 21~30题
2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems第21题题目:求1+2!+3!+…+20!的和 思路:先写一个函数递归求阶乘,再循环求和package Java基础50题;/* * Law...
2018-03-25 16:15:18 257
原创 Java基础50题(2) 11~20题
2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems第11题题目:有1、2、3、4,这4个数字,能组成多少个 互不相同 且 无重复数字 的三位数?都是多少? 思路:3个循环解决问题packag...
2018-03-25 16:13:10 307
原创 Java基础50题(1) 1~10题
不说什么了,从最基础的开始吧。不论多简单的题目,自己不动手敲一遍是不可能深刻理解的。嘴上说说谁都会。2018.3.25 Java基础50题系列源码已上传到我的github仓库,有需要的可以自取,欢迎大家提出建议 https://github.com/Lawliet0717/Java-foudamental-50-problems第一题 ##题目:原题是生兔子的问题 思路:其实就是...
2018-03-23 08:57:40 399
原创 Intellij idea 连接 Github 时 push 失败的解决方法
在尝试使用Git连接Github,创建仓库上传本地代码的时候,遇到了问题。前面的设置步骤都略过,大致就是装好Git,路径对好,设置好Github账号密码(在settings那里)在看了别人的博客,使用了Add——–>Commit——–>Push的过程中,在push的时候一直报错当时没有截图,错误代码大致是c盘下什么什么文件,最后can’t read username on ...
2018-03-20 12:58:26 9416 4
原创 基于Java实现归并排序
归并排序public static void mergeSort(int[] arr) { if (arr == null || arr.length < 2) { return; } mergeSort(arr, 0, arr.length - 1); } public static void...
2018-03-13 22:57:03 172
原创 基于Java实现堆排序
堆排序public static void heapSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int i = 0; i < arr.length; i++) { heapInsert(arr...
2018-03-13 22:18:49 170
原创 基于Java实现插入排序
插入排序public static void insertionSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for(int i = 1; i < arr.length; i++){ for(int j ...
2018-03-13 22:17:09 152
原创 基于Java实现冒泡排序
冒泡排序public static void bubbleSort(int[] arr) { if(arr == null || arr.length<2) return ; for(int e = arr.length-1; e > 0; e--){ for(int i = 0; i < e...
2018-03-13 19:46:38 165
原创 使用IDA静态分析osloader.exe+Ntoskrnl.exe
1.使用IDA静态分析osloader.exe,找到BlOpen()函数的执行语句,简述查找及分析过程。用IDA pro 5.6打开osloader.exeAlt+T,打开文本搜索对话框,在字符串文本框中输入要搜索boot.ini.成功跳转到BIOpen函数ARC_STATUSBlOpen ( IN ULONG DeviceId, I
2017-11-09 20:32:22 2032
原创 对Osloader.exe进行分析 查找e_lfanew,IMAGE_EXPORT_DIRECTORYAddressOfFunctions
1.使用winhex打开从NTLDR中提取出的oslader.exe2.查找e_lfanew3.查找IMAGE_EXPORT_DIRECTORY->AddressOfFunctions通过上图我们可以得出,导出表的RVA是 000357B0h ,Size是 000006AFh。我们借助LordPE可以确定在哪个区段表中, 因为导出表的RVA是000357B0h 是大于00031000h 但是小于00
2017-11-09 20:22:13 1128
原创 虚拟地址到物理地址
32位段基址:用段寄存器选择子(16位)加上段描述符得到 32位有效地址EA:通过存储器寻址方式获得,由基地址,变址和偏移量相加得到 32位线性地址:由32位段基址+32位有效地址EA得到 当没有启用分页机制的情况下,线性地址就是物理地址。 当启用分页机制后,每一个32位的线性地址被划分为三部分,面目录索引(10位),页表索引(10位),偏移(12位)。依据以下步骤变换: 1.从cr3中取
2017-11-09 20:05:59 471
原创 操作系统 实验2 windbg双机调试+系统调用过程
1.配置windbg双机调试环境,给出关键步骤及最终成功断下的截图。 1).在安装好的win7虚拟机设置中,添加一个串行端口,并选择输出到命名管道,具体设置如图。这样设置之后,在后面的步骤中,主机便能通过这个管道与虚拟机相连进行双机调试。 2)在win7虚拟机中以管理员权限打开命令行并做以下设置3)在本机里创建一个windbg的快捷方式,在目标一栏里加上以下代码 -...
2017-11-09 17:19:06 2080
原创 操作系统 实验1 GDT表分析+驱动调试
1.GDT表分析:给定段选择子0x23,分析对应的段描述符中相关属性取值:G/P/TYPE三种,并描述TYPE赋值的语义。 段选择子是什么? 引用GDT和LDT中的段描述符所描述的段,是通过一个16-bit的数据结构来实现的,这个数据结构叫做Segment Selector——段选择子。它的高13位作为被引用的段描述符在GDT/LDT中的下标索引,bit 2用来指定被引用段描述符被放在GDT中...
2017-11-09 16:43:13 1189
原创 基于图论的奖金分配问题
【问题描述】 由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。 于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意
2017-11-09 16:10:13 1004
原创 设置WINDBG本机内核调试
之前使用过WINDBG+虚拟机进行双机内核调试,这次需要直接使用本机内核调试的功能,在设置的时候遇到的一些问题即解决方法来分享一下。下面是借鉴的别人的博客里的步骤** 1. 下载/安装windbg 2. 找到windbg的安装路径,windbg访问符号需要两个文件(SYMSRV.DLL 和 SYMSTORE.EXE)所以添加主path环境变量中它们的路径进去,即:你的windbg安
2017-10-14 15:32:41 2108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人