- 博客(77)
- 收藏
- 关注
转载 每天两题04
本来昨晚就准备看两个题的,结果下班回来躺了一下就睡着了,今天继续,嘿嘿(^.^)题目一:二进制中1的个数 题目描述:输入一个整数,输出该数二进制表示中 1 的个数。 思路:第一眼看到这个题目的我想法是首先将这个数转成二进制字符串,然后通过遍历这个字符串中的每一个元素是不是等于1,然后用个int类型的数值去计算,代码如下:public static int on...
2019-09-21 12:06:00
252
转载 每天两题03
题目一:旋转数组的最小数字 思路:说实话看这个题目看了好久题目愣是没看懂,到底是个什么数组啊,又不说清楚,emmm...百度了好久才知道这个数组默认其中的元素的递增的,而且在数组中的元素可能是重复的,比如2344445这种也是行的,我们就分别讨论一下有重复元素和没有重复元素的情况; 第一种情况:数组中没有重复元素; 顺便提一句,所谓的数组的旋转,就是每次讲第一...
2019-09-20 00:01:00
233
转载 每天两题02
题目一:思路:当n=1的时候很明显只有一种跳法; 当n>1的时候,那么总共的跳法应该就是第一次跳一级台阶还剩下n-1个台阶、第一次跳两级台阶还剩下n-2个台阶,这两种情况的总和,而至于这里的n-1和n-2个台阶,同理可以继续拆分,是不是觉得很熟悉,还是斐波那契数列,这里用的还是分治的思想,代码跟上一篇一样,不过还是写一下(省略最外层的类名,其实用递归是最...
2019-09-18 00:02:00
235
转载 每天两题01
又是两个月的时间过去了,上一次写博客是7月14号,时间还是过的很快的,那么问题来了,为什么这么长时间都没有写东西了呢?难道是在打酱油? 哈哈,说起来很惭愧,刚刚开始工作,碰到各种的问题要去学习要去解决,然后业余的时间又去学了一些奇奇怪怪的东西,导致博客一直都落下了,归根到底,还是自己懒惰了,因为心中总觉得今天又工作了一天,下班了要好好放松一下。不自觉的用这种心理在安慰自己,使得...
2019-09-16 23:18:00
211
转载 简单看看原码、补码和反码
最近这破事贼多,都没有什么时间写写博客,都好久都没有更新博客了!不过平常看jdk源码的时候有很大的感触,就是基础真的很重要,那什么是基础呢?除了java的基本语法之外,最基础的莫过于原码,反码和补码了以及基本的运算了! 由于我是编程半路出家,最开始的时候学过一点这些东西,当时只是感觉,擦!我是写代码的,这些原码什么的有个鸡儿用,有时间看这个还不如多写点代码!但是现在,看了不少源...
2019-07-14 00:21:00
594
转载 简单看看java之枚举
枚举类这个类用的比较少,对这个不怎么熟悉,最近看源码刚好可以好好了解一下,那么,枚举Enum是什么呢?在jdk中,Enum是一个抽象类下图所示,这就说明这个类是不能进行实例化的,那么我们应该怎么使用呢?1.枚举类的基本使用 简单的使用一下(随便借用的一个栗子),我们可以直接把枚举类当作一个常量一样来使用这个类,那么问题来了,下面的这个枚举类和上面说的那么Enum抽...
2019-07-02 11:14:00
172
转载 随意看看AtomicInteger类和CAS
最近在读jdk源码,怎么说呢?感觉收获还行,比看框架源码舒服多了,一些以前就感觉很模糊的概念和一些类的用法也清楚了好多,举个很简单的例子,我在读Integer类的时候,发现了原来这个类自带缓存,看看如下代码:package com.wyq.test;public class TestIntegerCache { public static void main...
2019-07-01 09:35:00
198
转载 js原型链
说实话js这门语言以前没有仔细研究过,现在研究起来感觉好麻烦,对于原型链这个说法我也是刚接触不久,就试着说说我的理解吧! 关于上一篇我们说了js整个函数体系结构,想了解的可以点击这里,这里随便找到一些对原型的小测试,你可以看看会不会,其中Person是一个构造函数,person1是构造函数的一个实例; person1.__proto__是什么?//person1.__p...
2019-06-29 08:45:00
130
转载 简单看看jdk7源码之Object和String
从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧。。。。(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!) 在网上看了很多的教程,读源码有一定的顺序,按照包的顺序:java.lang包,java.util包,java.util.concurrent包,java.util.concurrent.atomic包,java...
2019-06-28 11:37:00
167
转载 简单学习js
由于是个前端小白,通过这一两天的学习html,css,js和jquery等,基本上前端会用了,而且熟悉我博客的人来说,没错,我把自己的博客给优化了一下(一些大佬都是禁用模板的所有样式,然后自己设计页面布局),我的话就稍微添加了一些小插件; 比如动态雪花背景,雪花随着鼠标弹开;背景图片;鼠标点击特效文字;右上角3D相册,类似轮播图一样;统计访问博客的人的来源;小老鼠组件;个性时钟...
2019-06-14 11:07:00
482
转载 简单学习HTML
最近突然就对静态页面很有兴趣,主要是看到几个比较酷炫的页面效果,也想自己做一下,但是我的前端页面就是菜鸡,还停留在html+css+jquery的简单使用上,而且还忘记得差不多了! 而且我感觉前端比后端麻烦一点,可能是我没有什么审美吧,自己做的页面总是很丑陋,哈哈哈!就记录一下学习html的过程吧!学习主要是参考菜鸟教程,链接:https://www.runoob.com/ht...
2019-06-08 17:46:00
243
转载 java简单实现用语音读txt文档
最近比较无聊,随便翻着博客,无意中看到了有的人用VBS读文本内容,也就是读几句中文,emmm,挺有趣的,实现也很简单,都不需要安装什么环境,直接新建txt文件,输入一些简单的vbs读文本的代码,然后将新建的文件后缀改为.vbs,然后双击一下就可以有效果了。。。。 于是我就想啊,java行不行呢?查了一些资料,还真的行,我就将我试验的过程说一下,就当作娱乐娱乐!1.依赖 ...
2019-06-07 00:49:00
377
转载 CGLib动态代理
上一篇我们说过了jdk动态代理,这一篇我们来看看CgLib动态代理,本来以为CGLib动态代理和JDK实现的方式差不多的,但是仔细了解一下之后还是有很大的差异的,这里我们先简单说一下这两种代理方式最大的区别,JDK动态代理是基于接口的方式,换句话来说就是代理类和目标类都实现同一个接口,那么代理类和目标类的方法名就一样了,这种方式上一篇说过了;CGLib动态代理是代理类去继承目标类,然...
2019-06-02 22:12:00
166
转载 java反射和代理
这一篇我们说说反射和动态代理,为什么这两个要一起说呢?因为动态代理中会用到反射,而且java中反射的用处太多了,基本上无处不在,而且功能十分强大;1.反射简介 反射是什么呢?一般都是很专业的说法:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;我最初看这句话我是没看出来什么厉害的地方,运行状态?什么是运行状态啊? 简单看看下面这个图,类的加载机制以前说...
2019-05-29 17:05:00
331
转载 java数据结构和算法10(堆)
这篇我们说说堆这种数据结构,其实到这里就暂时把java的数据结构告一段落,感觉说的也差不多了,各种常见的数据结构都说到了,其实还有一种数据结构是“图”,然而暂时对图没啥兴趣,等有兴趣的再说;还有排序算法,emmm....有时间再看看吧! 其实从写数据结构开始到现在让我最大的感触就是:新手刚开始还是不要看数据结构为好,太无聊太枯燥了,很容易让人放弃;可以等用的各种框架用得差不多了...
2019-05-27 20:37:00
159
转载 java数据结构和算法09(哈希表)
树的结构说得差不多了,现在我们来说说一种数据结构叫做哈希表(hash table),哈希表有是干什么用的呢?我们知道树的操作的时间复杂度通常为O(logN),那有没有更快的数据结构?当然有,那就是哈希表;1.哈希表简介 哈希表(hash table)是一种数据结构,提供很快速的插入和查找操作(有的时候甚至删除操作也是),时间复杂度为O(1),对比时间复杂度就可以知道哈...
2019-05-21 22:58:00
168
转载 java数据结构和算法08(B树的简单原理)
这一篇首先会说说前面剩余的一点知识2-3树,然后简单说说B树,不写代码,只是简单看看原理吧! 为什么要说一下2-3树呢?了解2-3树之后能更快的了解B树;1.简单看看2-3树 其实我们学过了前面的2-3-4树之后,再看2-3树就太容易了,2-3树中任意一个节点最多只有三个子节点,而且节点中只有两个空位置可以存数据;除了分裂,其他的都和2-3-4树一样的,就不多说...
2019-05-19 10:22:00
200
转载 java数据结构和算法07(2-3-4树)
上一篇我们大概了解了红黑树到底是个什么鬼,这篇我们可以看看另外一种树-----2-3-4树,看这个树的名字就觉得很奇怪。。。。 我们首先要知道这里的2、3、4指的是任意一个节点拥有的子节点个数,所以我们就大概知道2-3-4树中的每一个节点应该最多有四个子节点;注意:2-3-4树中的任意一个节点不能只有一个子节点,应该只有几种情况:0、2、3、4 有个东西一直忘记说了,就是...
2019-05-15 17:50:00
222
转载 java数据结构和算法06(红黑树)
这一篇我们来看看红黑树,首先说一下我啃红黑树的一点想法,刚开始的时候比较蒙,what?这到底是什么鬼啊?还有这种操作?有好久的时间我都缓不过来,直到我玩了两把王者之后回头一看,好像有点儿意思,所以有的时候碰到一个问题困扰了很久可以先让自己的头脑放松一下,哈哈! 不瞎扯咳,开始今天的正题; 前提:看红黑树之前一定要先会搜索二叉树1.红黑树的概念 红黑树到底是个什么...
2019-05-10 22:28:00
231
转载 java数据结构和算法05(二叉树)
对于树这个数据结构,第一次看到这个树肯定是一脸蒙逼,玛德,树?种树的那个树么?哈哈哈,当然不是,前面我们说过数组添加、删除数据很慢,查询数据很快;而链表添加、删除数据很快,但是查找数据很慢,我们就想啊,有没有一种数据结构取二者之精华,那不就是一个添加,删除,查询都很快的数据结构吗?那用起来多舒服啊! 这个取二者之精华的数据结构就是树(tree),而且随着各种大佬对树这种结构的...
2019-05-04 16:00:00
225
转载 java数据结构和算法04(链表)
前面我们看了数组,栈和队列,大概就会这些数据结构有了一些基本的认识,首先回顾一下之前的东西; 在数组中,其实是分为有序数组和无序数组,我简单实现了无序数组,为什么呢?因为有序数组的实现就是将无序数组进行排序就可以了!后面我想把所有排序给弄在一起说说,而且有序数组这里的序我认为是排序的序,而不是顺序的序,在有序数组中,对插入的数据会进行一种排序,让数组中的元素以一种我们规定的顺序...
2019-05-03 09:28:00
126
转载 java数据结构和算法03(队列和优先级队列)
什么是队列呢?其实队列跟栈很像,我们可以把栈的底部给弄开,这样数据就可以从下面漏出来了,我们就从下面拿就好了。 可以看到队列是新进先出,就跟我们显示生活中的排队一样,买火车票,飞机票等一样,先去的肯定是先上车;但是数据在出来的时候,难道我们要把上面所有的数据都往下移动一个位置吗?我们知道假如一个队列非常大,里面的数据量很多的时候我们这种要把所有的数据都移动一个位置这种行为...
2019-04-30 11:12:00
122
转载 java数据结构和算法02(栈)
什么叫做栈(Stack)呢?这里的栈和jvm的java栈可不是一个东西。。。 栈作为一种数据结构,我感觉栈就类似一种接口,实现的话有很多种,比如用数组、集合、链表都可以实现栈的功能,栈最大的特点就是先进后出,可以想象一下放羽毛球的盒子怎么放进羽毛球和拿出来羽毛球,我们把放进羽毛球的动作就叫做压栈或者入栈(push),拿出羽毛球的动作就叫做弹栈或出栈(pop) 其实在j...
2019-04-29 20:47:00
105
转载 java数据结构和算法01(数组的简单使用)
一直都对这一块没有什么想法,加上不怎么理解,只是懂个大概;最近突然感觉对数据结构和算法这块有点儿兴趣,决定还是尽量详细的看看这些结构和算法; 话说什么事数据结构和算法呢?现在我也说不上来,等我学的差不多了再来总结吧! 我随意借了一张图,所谓的数据结构就是下面这些,我们一个一个的慢慢看(玛德,好多。。。)1.数组的基本用法 对于数组应该很熟悉了,最开始学...
2019-04-29 10:54:00
129
转载 带着新人看java虚拟机07(多线程篇)
这一篇说一下比较枯燥的东西,为什么说枯燥呢,因为我写这都感觉很无聊,无非就是几个阻塞线程的方法和唤醒线程的方法。。。1.线程中断 首先我们说一说怎么使得一个正在运行中的线程进入阻塞状态,这也叫做线程中断,最常见的就是Thread.sleep(1000)这种方式的,我们直接看一个简单粗暴的图: 此图应该列举了所有中断,我们选择几个比较重要的说说,其中有几个方...
2019-04-27 17:34:00
143
转载 带着新人看java虚拟机06(多线程篇)
其实多线程还有很多的东西要说,我们慢慢来,可能会有一些东西没说到,那就没办法了,只能说尽量吧! 1.synchronized关键字 说到多线程肯定离不开这个关键字,为什么呢?因为多线程之间虽然有各自的栈和PC计数器,但是也有一些区域是共享的(堆和方法区),这些共享的区域就不可避免的造成一些问题,比如一个线程对共享区的一个变量进行修改时,此时另外一个线程也要对这个数据进...
2019-04-25 19:12:00
211
转载 带着新人看java虚拟机05(多线程篇)
上一篇我们主要是把一些基本概念给说了一下以及怎么简单的使用线程池,我们这一节就来看看线程池的实现;1.线程池基本参数 以Executors.newFixedThreadPool()这种创建方式为例: 大家想象,假如你创建一个线程池,你想这个池子有些什么参数呢?首先这个池子必须要有一个最大值;然后还希望这个池子的线程数量有一个警戒线,到了这个警戒线的位置说明线程池...
2019-04-23 11:13:00
122
转载 带着新人看java虚拟机04(多线程篇)
我记得最开始接触多进程,多线程这一块的时候我不是怎么理解,为什么要有多线程啊?多线程到底是个什么鬼啊?我一个程序好好的就可以运行为什么要用到多线程啊?反正我是十分费解,即使过了很长时间我还是不是很懂,听别人说过也自己试过,但总是没有理解透彻; 时间过了很久感觉现在对多线程有了一点新的理解,我们还是从最基本的开始,顺便看看从jvm的角度看看多线程在jvm中是怎么分配内存的,顺便和前...
2019-04-22 15:55:00
293
转载 带着新人看java虚拟机03
分享一篇博客:https://blog.csdn.net/yfqnihao/article/details/8289363,本篇有部分参考这篇博客!!! 还是继续说一下java虚拟机,为什么呢?因为我随意翻着别人的博客一不小心看到有关jvm的一点新的东西,挺有趣的,就按照我的理解分享一下; 还记得以前学过一首诗,“看成岭侧成峰,远近高低各不同”,这一句诗的内在含义有的时候...
2019-04-20 14:54:00
109
转载 带着新人看java虚拟机02
上一节是把大概的流程给过了一遍,但是还有很多地方没有说到,后续的慢慢会涉及到,敬请期待! 这次我们说说垃圾收集器,又名gc,顾名思义,就是收集垃圾的容器,那什么是垃圾呢?在我们这里指的就是堆中那些没人要的对象。1.垃圾收集器的由来 为什么要有垃圾收集器啊?不知道有没有想过这个问题,你说我运行一个程序要什么垃圾收集器啊? 随意看一下下面两行代码:Us...
2019-04-18 22:44:00
163
转载 带着新人看java虚拟机01
1.前言(基于JDK1.7) 最近想把一些java基础的东西整理一下,但是又不知道从哪里开始!想了好久,还是从最基本的jvm开始吧!这一节就简单过一遍基础知识,后面慢慢深入。。。 水平有限,我自己也是很难把jvm将清楚的,我参考一本书《深入java虚拟机第二版》(版本比较老,其实很多大佬的博客都是参考的这本书的内容。。。),电子档pdf文件链接:https://pan.b...
2019-04-17 12:04:00
182
转载 学习笔记02(随便看看mybatis源码)
两个很有名的持久层hibernate和mybatis应该很熟悉不过了,两者最大相同点是底层都是对jdbc的封装,最大的不同点是前者是自动生成sql语句,后者是需要我们在映射文件中写出sql。 其实从以前就一直想看看mybatis源码的,由于自己太懒了就一直拖了下来,最近没啥事,就看看源码吧! 都说mybatis是对jdbc的封装当然,那到底是怎么封装的呢?眼见为实!还是跟...
2019-04-13 09:54:00
152
转载 jdk切换小工具
今天无意之中看到一个小工具,就是可以自由切换jdk版本!以前每次切换jdk还要去找环境变量找半天,emmm.... 现在我们只需要双击一个xxx.bat的一个批处理文件,就可以自由切换jdk版本,很方便。 1.首先你要随便取个名字,我取的是changejdk.bat 2.然后下载一个小软件RefreshEnv.exe,用于刷新环境变量链接: https://pa...
2019-04-12 16:48:00
537
转载 学习笔记01(mybatis逆向工程)
今天来看看一个常用的小功能,就是mybatis的逆向工程。(数据库是mysql) 什么是逆向工程呢?看名字就知道反方向的一个什么工程! 其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写几张数据库表,然后再打开IDEA或者Eclipse去搭建环境,通过一些和数据库交互的框架去和数据库交互,就比如用mybatis,我们就要写一个mapper和很多的pojo,还...
2019-04-09 11:07:00
135
转载 简单实现springmvc框架(servlet+自定义注解)
个人水平比较菜,没有这么高的实力简单实现springmvc框架,我是看了一个老哥的博客,这老哥才是大神! 原文链接:https://www.cnblogs.com/xdp-gacl/p/4101727.html ok,开始瞎扯一下,我们用springmvc的时候是不是要导入依赖或者是jar包啊,那是由于别人将很多功能都给设计好了,我们直接拿过来用,这有好处也有坏处;好处是...
2019-04-09 10:02:00
286
转载 带着新人简单看看servlet到springmvc
好久都没有写博客了,不是因为自己懒了,而是总感觉自己知道的只是太少了,每次想写博客的时候都不知道怎么下手,不过最近看到一篇博客说的是springmvc,给了我比较大的兴趣,感觉一下子对整个springmvc框架一下子清晰了,很多感觉模糊的东西一下子就清晰明了的。 我把那个老哥原博客网址贴出来:https://www.cnblogs.com/xdp-gacl/p/4101727...
2019-04-08 18:38:00
809
转载 知识小罐头09(tomcat8启动源码分析 下)
初始化已经完成,现在就是启动这些组件,Tomcat中的start方法就是用于启动的,其实start的原理还是和上一篇说的初始化几乎一样!这里我就大概说一下,看几个比较关键的地方就行了。 前面的步骤就大概截图看一下就ok了 ok,由于前面这些东西基本和初始化的流程一样,跳过,我们就从启动service开始看; 其实关键就是这三步,启动...
2018-12-27 13:15:00
143
转载 知识小罐头08(tomcat8启动源码分析 上)
前面好几篇都说的是一个请求是怎么到servlet中的service方法的,这一篇我们来看看Tomcat8是怎么启动并且初始化其中的组件的? 相信看了前面几篇的小伙伴应该对Tomcat中的各个组件不陌生了,所以我们就可以加快一点速度; 简单说一下Tomcat启动流程,首先是设置一下各种类加载器,然后加载server.xml配置文件,然后初始化Container各个容器,最后...
2018-12-26 22:43:00
156
转载 知识小罐头07(tomcat8请求源码分析 下)
感觉最近想偷懒了,哎,强迫自己也要写点东西,偷懒可是会上瘾的,嘿嘿!一有写博客的想法要赶紧行动起来,养成良好的习惯。 ok,继续上一篇所说的一些东西,上一篇说到Connector包装了那两个对象,最后变成了HttpServletRequest和HttpServletResponse对象,这两个对象应该就是原生servlet的service方法可以使用的了,但是隔了这么多堵墙,要...
2018-12-22 15:25:00
180
转载 知识小罐头06(tomcat8请求源码分析 中)
更正上一篇一个小错误,Connector中首先是将socket请求过来的信息封装成一个普通的Request对象(上一篇我写成HttpRequest对象,失误失误,根本就木有HttpRequest这样的对象。。。),然后在Adapter中封装成一个HttpServletRequest进行处理,再丢给Container。。。。 源码中可以清晰的看到: o...
2018-12-21 13:00:00
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅