自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小男孩

个人在学习中遇到的问题,经验的总结,心得的体会都会记录在这里,与大家共勉!

  • 博客(64)
  • 收藏
  • 关注

原创 java基础细节

java基础有很多的细节,如果不清楚其底层是如何运行的,很多我们一贯以来的想法都会致使我们做出错误的判断,话不多说,一起来颠覆三观吧。1. 猜猜他们分别会输出啥?System.out.println(1+2+"a");System.out.println("a"+1+2);第一行输出3a,第二行输出a12因为执行的时候是从左到右的,遇到字符串就会强转为字符串。所以第一行执行...

2019-09-20 11:25:00 8305 20

原创 个人第二个项目总结:home键,recent键,back键的屏蔽

我们都知道,android自5.0以后对一些属性有了比较大的改动,尤其是home键,在应用层已经无法做到屏蔽。今天就来看看如何屏蔽这三个键。首先,因为不同手机的触发机制不一样,所以对于某些手机,recent键没法屏蔽,已知的有魅族,锤子(少数),鲁比亚(某些)。对于已知测试的手机,home键,back键都能屏蔽。首先,屏蔽back比较简单,重写onKeyDown就可以了,直接上...

2018-07-06 15:07:31 5594 4

原创 比较a^b与b^a的大小

给你两个int型的正整数,比较a的b次方与b的a次方的大小。思路:这道题我们要用到高中所学的知识,当a>0&&b>0分别对a^b和b^a取对数=>blna alnb=>lna/a lnb/b=>lnx/x=>(求导)(1-lnx)/x^2=>x==e(零点)=> (0,e) 单增 (e,+00) 单减                                           当a

2017-12-20 17:29:59 13892 1

转载 在路径为/Growth的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因

最近重导以前写的项目遇到这个问题,百度很多方法诸如修改catalina.properties文件,引入jstl.jar和standard.jar,增加standard.jar解压文件下的.ltd文件等均无效,最后发现直接将webapps下lib的包引入到web-inf即可完美解决问题。

2023-03-12 20:08:20 321

原创 每日一道算法题--二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。在一个有序数组中查找某个数,我们很容易就想到二分查找,所以不难写出代码:public class Solution { public boolean Find(int target, int...

2019-11-27 14:49:19 215

原创 二叉树的遍历方式

我们都知道二叉树的遍历方式有先序遍历,中序遍历,后序遍历。先序遍历他们最基本的实现方式是递归实现,那如果我们想要用非递归方式来实现呢?首先,先序遍历的遍历方式是根-左-右递归方式代码实现:public List<Integer> inorderTraversal(TreeNode root){ List<Integer> list=new L...

2019-10-29 18:05:25 182

原创 socket编程的简单实现

socket编程是作为程序员必须会的,所以这篇博客就专门来讲一讲socket编程的基本实现。话不多说,直接上实例,然后再分析讲解。TCP版:client端:package day01;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;impo...

2019-10-15 16:42:37 251

原创 关于字符串的一些操作

1.求一个数组的最长递增非连续子序列的长度分析:当我们拿到一个题首先就要思考这道题考察的是什么?本题中,要求求的是非连续的子序列,说明什么呢?说明要回溯,既然要回溯我们就可以利用双重循环。同时要求的是最长子序列,所以要用到动态规划思路:我们利用dp[i]来保存每个位置当前所对应的最大长度,每次比较0~i之间的所有值同dp[i]的大小,如果比dp[i]大,则重新赋值,最后刷新最大长度的值。...

2019-09-16 22:02:43 152

原创 深拷贝和浅拷贝

在前面,我们在java创建对象的四种方式中提到过通过clone来创建对象,点我前往。这一篇,我们将详细说说拷贝。拷贝分为两种,浅拷贝和深拷贝。浅拷贝:赋值原来的对象,但是不复制对对象的引用。对于基本数据类型,克隆前后互不影响,即创建了一个新的对象。对于引用类型,克隆前后相互影响深克隆:不仅复制了对象,还赋值了对象的引用,即克隆前后完全是两个不同的对象,两者互不影响。下面,我们就...

2019-09-10 11:39:52 191

原创 java反射

前面写了篇文章讲了java对象的四种创建方式,其中的java反射只是提了一下,但是很多细节没有说,这篇文章就专门说一说java反射的一些实现。首先创建源类:package day01;import javax.security.auth.login.LoginContext;public class User { private String username...

2019-09-09 22:14:11 142

原创 java创建对象的四种方式

我们都清楚,java的创建方式常用的有四种,这里我对这四种方式进行了代码的实现,做一个简单的总结。package day01;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStre...

2019-09-09 11:12:33 263

原创 常见排序算法合集2

上篇文章实现了冒泡,选择,插入,希尔,归并,上一篇:常见排序算法合集1这一篇则实现了剩下的快速,堆排,计数,桶排,基数话不多说,直接上代码,代码中都有注释,相信不难理解:package day01;import java.util.Random;public class AlgTest { static Random r=new Random(); static int[...

2019-09-08 11:18:05 176

原创 常用排序算法合集1

这里我将常用的十种排序算法进行归纳,并且提供代码的实现。本篇文章实现的有冒泡,选择,插入,希尔,归并,话不多说,详情请查看源码:package day01;import java.util.Random;public class AlgTest { static Random r=new Random(); static int[] array=new int[10]; p...

2019-09-07 12:05:17 295

原创 工厂模式的实现3

上一篇我们实现了工厂模式,点击前往,但是有一个很大的缺陷就是一个工厂只能生产一个产品,那就意味着我们新添一个产品就要新添一个工厂,很明显这个任务量就太大了为了避免这种情况,我们又引入了新的模式就是抽象工厂模式。简单的说,抽象工厂模式就是在工厂模式的基础上,让一个工厂可以生产多个产品,而这些产品同时应该是属于同一个工厂的。首先我们创建两个产品Car和Bike,并为他们分别提供一个实现方法...

2019-09-05 11:20:52 309

原创 工厂模式的实现2

上一篇我们讲了静态工厂模式的具体实现,点击前往,我们可以发现,我们在静态工厂模式中只提供了一个工厂,当我们需要添加不同的产品时,很明显就需要修改源代码,这就违背了开闭原则,为了避免这一情况,我们引入了工厂模式。工厂模式:简单的说就是提供一个工厂接口和产品接口,我们通过工厂接口来实现不同的工厂,通过不同的工厂来获取不同的实例,通过产品接口来实现不同的产品。首先我们先创建产品接口,并提供产品方...

2019-09-05 10:19:34 112

原创 工厂模式的实现1

在我们的实际项目中,工厂模式的应用是相当广泛的,所以对工厂模式有一个清晰的理解是很有必要的,为此,我这里专门对常见的三种工厂模式进行代码的实现和流程的理解,这样也便于在今后的学习和工作。这篇我们将讲解最基础的静态工厂方法模式,也叫做简单工厂模式。简单工厂模式,简单的说就是将对象的创建和使用分离,使用者不需要知道所需创建的对象的具体名称,而只需要调用所提供的参数即可。首先我们创建一个抽象...

2019-09-05 09:35:24 104

原创 基于hexo和github搭建个人博客2

上一篇讲到如何搭建博客,点我前往,这一篇就简单来说一下如何上传我们的作品。首先,我们要知道在哪里上传作品。如图,找到你本地的位置所在,我们上传的文件都是.md后缀的文件,明显我们要用这样的编译器。这里推荐使用csdn自带的Markdown编译器,然后导出创作后的内容,注意要以markdown的格式导出!把导出后的内容存放在前面我截图那里,这其实就是github01.md。...

2019-09-04 17:18:13 168

原创 基于hexo和github搭建个人博客

准备:github上的个人账号(很简单,这里不详赘)git工具,点我前往下载,一路next即可,路径不推荐放在C盘,父级名最好不要有中文,用户名也最好不要有中文(很多默认存放变量在c的用户名下)在存放的那个盘创建一个文件,当作自己的库。我存放在F盘:说明:mkdir: 创建文件价 cd: 操作某文件夹 pwd:查看路径然后查看是否已经创建配置到哪里:np...

2019-09-04 12:13:59 260

原创 单例模式的实现

单例模式的实现有很多种,这里我们在代码实现上来完成常见的几种。1. 双重检索package day01;/** * 单例模式的实现方式:1.双重检索 * * @author WEI 哥 * */public class Fibonacci { //私有化构造方法,避免外部创建对象 private Fibonacci() {} //使用volatile避免多线程下指...

2019-08-31 22:27:31 117

原创 字符串的基本操作

我们最常打交道的就是字符串了,所以将字符串的一些很常用也很实用的方法总结一下是很有必要的,这样以后遇到的话就不用全百度去搜索了。这里我会不定时的更新package day01;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputS...

2019-08-30 22:32:53 132

原创 文件操作

我们都知道java文件操作有很多种情况,这里我们就其中很常用的方法来进行实现。1.采用BufferedReader和BufferedWriter来进行文件的读写(按行来读写)package day01;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import jav...

2019-08-30 17:37:34 139

原创 三种方式实现多线程交替打印数字

以前多线程基础比较差,现在开始恶补。作为多线程的开门篇,多线程的实现是最基本的,也是java程序员闭着眼睛都应该可以实现的。话不多说,直接上代码:package day01;import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;/** * Multi-threaded alter...

2019-08-27 16:18:10 1410

原创 我的编程之旅2

上次的总结是两年以前了。不知不觉,两年过去了,回想这两年走过的路,莫名有些感触。这两年,我写了三个软件,一个网站,一个微信小程序。完全的独立开发,算不上写得多好,但是那时候真的是废寝忘食,真的尽力了。我喜欢这个创作的过程,尽管水平完全达不到商业的标准,但是这种尝试这种精神我觉得是很重要的。我的第一个软件是为了自己而写的,是为了鞭策自己,虽然好像自己也没怎么用。。。第二个软件是为...

2019-08-12 17:35:09 129

原创 KMP算法的理解与认识

如果我们要找到一个子串在一个字符串第一次出现的位置,可以使用BF算法或者KMP。其中,BF算法的原理就是将子串字符与主串字符挨个比较,一旦不同,就返回到首个相同的字符的下一个在进行比较,直到全部相同位置。如:子串abac,主串ababacdac,其步骤如下:ababacdacaababacdacabababacdacabaababacdac aa...

2019-07-07 21:26:35 122

原创 栈和队列之链队的基本实现

前面一章我们学习了循环队列,这里我们来看看链队的实现创建链队void InitLinkQueue(LinkQueue &q){ QueuePtr p=(QueuePtr)malloc(sizeof(QNode)); q.fron=q.rear=p; //生成一个头结点,并且让头指针和尾指针都指向该结点 q.fron->next=NULL...

2019-05-29 19:54:14 217

原创 栈和队列之循环队列的基本实现

这里,我们来学习一下循环队列的基本操作:创建一个队列void InitQueue(SqQueue &q){ q.base=(User *)malloc(MAXSIZE*sizeof(int)); //为队列开辟内存空间 q.fron=q.rear=0; //队列初始为空队列}计算队列的长度int QueueLength(SqQue...

2019-05-29 15:17:02 681

原创 栈和队列之链栈的基本实现

将链栈的头部作为栈顶就很方便了,而且不必设置头结点,每次插入都是将结点设置为栈顶元素,每次删除都是将栈顶元素删除。具体实现如下:创建一个空链栈:void InitLinkStack(LinkStack S) //与其他链表不一样的是,这里不需要创建一个头结点{ S=NULL;}入栈:void Push(LinkStack &S,User u...

2019-05-28 11:24:35 168

原创 栈和队列之顺序栈的基本实现

什么是栈?栈是一个仅在表尾进行插入或删除的线性表,即后进先出线性表这里,我们来学习一下如何实现顺序栈的基本实现:初始化顺序栈:void InitStack(SqStack *s){ s->base=(User *)malloc(MAXSIZE*sizeof(int)); //开辟一个大小为AXSIZE的数组空间,数组元素为User s->t...

2019-05-28 10:10:06 306

原创 线性表之链表基本操作的实现3

这里,我们来实现双向循环链表的基本操作。1.创建双向循环链表DuLinkList CreateDuLinkList(DuLinkList L) //创建一个双向循环空链表{ L=(DuLinkList)malloc(sizeof(DuLNode)); L->next=L; //它的后驱指向自己 L->pr...

2019-05-21 16:38:12 289

原创 线性表之链表基本操作的实现2

这里,我们来实现循环链表的基本操作,我们采用单链表转换为循环链表:1.将单链表转换为循环链表ChangeLinkListToCkList(LinkList head) //这里只需要将最后的尾指针指向头结点{ LinkList p,p2=head,p1=head; while(p2){ //最后这个p就是链表指向尾结点的指针 ...

2019-05-20 21:34:28 654

原创 线性表之链表基本操作的实现1

这里,我们首先实现单链表的基本操作。1.创建单链表LinkList CreateLinkList(LinkList L){ L=(LinkList)malloc(sizeof(LNode)); //创建一个头结点 L->next=NULL; //头结点的指针域为空 return L;}2.采用前插法插入数据void...

2019-05-20 15:34:48 433

原创 线性表之顺序表基本操作的实现

这里我们实现顺序表的基本操作1.构建顺序表int InitList(SqlList *L,int List_Size){ L->elem=(int *)malloc(List_Size*sizeof(int)); //开辟一个大小为List_Size的存储空间 if(!L->elem) return -1; L->List_Size=...

2019-05-20 14:25:09 884

原创 JSON数据交互和RESTful支持

JSON数据交互是最近火起来的,相比于xml,json更快速,通用。这里就用一个入门案例来学习一下json如何进行数据交互的。web.xml:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http:...

2019-04-29 21:08:57 1540

原创 SpringMVC数据绑定

SpringMVC的数据绑定分几种方式,下面就其中的主要几种方式来进行分析:1.简单数据绑定1.1 绑定默认数据类型SpringMVC-config.xml配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/bean...

2019-04-29 11:42:30 183

原创 SpringMVC学习

首先需要导包,这里要注意jar不要和jdk与tomcat冲突,不然会导致一系列莫名其妙的问题。我之前就是jar是5.x,jdk是1.8,tomcat是9.0,然后就一直报错,无法创建servlet,后来把jar包换为4.3.6才恢复正常。然后创建工程如下:web.xml内容如下:<?xml version="1.0" encoding="UTF-8"?><we...

2019-04-28 16:45:00 102

原创 Mybatis-Spring整合学习

整合所需要的jar包这里就不多说了,创建类图如下:db.properties文件内容如下:jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/goods?serverTimezone=GMT%2B8&rewriteBatchedStatements=truejdbc.userna...

2019-04-27 17:27:14 108

原创 MyBatis的关联映射

MyBatis的关联映射有三种:一对一,一对多,多对多。这里,我们对每一种映射关系都认真分析一下:一对一:实例:一个人对应一张身份证,一个身份证对应一个人。创建两张表,person和card.。其中person表的字段有:id name age sex card_id。card表的字段有id code我们将card的id与person的card_id相对应,查询pe...

2019-04-21 20:16:42 215

原创 算法深度学习2

题目描述:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数看到题目,第一反应就是暴力,但是我试了一下,直接爆内存。这里我参考了别人的代码,然后反向推导出这题的理解思路和解题过程。看了下文,你会和我一样惊叹这世上竟有如此神奇的代码和如此精妙的思路!分析题意:题目...

2019-04-16 17:56:58 432

原创 算法深度学习1

今天看到一道非常经典的题,题目很简单,求非负数1到N之间出现1的个数。这题用暴力的话直接爆内存,肯定不行。然后我仔细分析了一种比较认可的思路,其巧妙程度让我叹为观止。我们认真分析一下这题,1的出现位置不外乎个位,十位,百位,千位等等,所以我们可以采取的策略就是将所有的位置上的1出现的次数分别计算,然后再相加,最后得到的就是我们要的答案。比如随便举几个例子:N=5,那么个位上为1有哪...

2019-04-16 11:28:10 134

原创 Spring框架深度学习--第四天

今天就来学习一下Spring的JDBC需要导入的包这里就跳过,首先看一下配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...

2019-04-15 11:09:12 134

空空如也

空空如也

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

TA关注的人

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