- 博客(357)
- 收藏
- 关注
原创 leetcode 9. 回文数
https://leetcode-cn.com/problems/palindrome-number/class Solution { public boolean isPalindrome(int x) { if (x < 0) { return false; } if (x == 0) { return true; } int n = (int) Math.log10(x
2020-07-06 23:56:31
227
原创 leetcode 8. 字符串转换整数 (atoi)
https://leetcode-cn.com/problems/string-to-integer-atoi/class Solution { public int myAtoi(String str) { str = str.trim(); char[] cArr = str.toCharArray(); if(cArr.length<1){ return 0; } boolean p
2020-07-06 23:38:19
238
原创 leetcode 7. 整数反转
https://leetcode-cn.com/problems/reverse-integer/class Solution { public int reverse(int xx) { if (xx == 0) { return xx; } boolean minus = false; long x = xx; if (xx < 0) { mi
2020-07-06 23:07:36
378
原创 leetcode6. Z 字形变换
https://leetcode-cn.com/problems/zigzag-conversion/心得:耗时2小时多主要是找到每一个计算单元的起点,每个计算单元可以看成是一竖行+后面的斜坡。竖行坐标 基点+行数斜坡坐标 下一行基点-行数由于第一行和最后一行比较特殊第一行:下一行基点-行数 得到的是下一个单元要计算的点,因为行数是0最后一行:下一行基点-行数 得到的是竖行的值,不是斜坡的值。所以要第二个加字母的操作要排掉第一行和最后一行class Solution {
2020-07-05 18:37:43
236
原创 leetcode 5最长回文子串
https://leetcode-cn.com/problems/longest-palindromic-substring/class Solution { public String longestPalindrome(String s) { if (s.length() < 1) { return s; } int[][] map = new int[s.length()][s.length()];
2020-07-04 17:18:28
116
原创 leetcode 3
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/class Solution { public int lengthOfLongestSubstring(String s) { Map<Character,Integer> crrent = new HashMap(s.length()); int max = 0; int cLe
2020-07-03 10:39:03
134
原创 Log4j2源码阅读
结构LogManagerprivate:LoggerContextFactory factory是Log4jContextFactoryLoggerContextprivate:XmlConfiguration configuration:存储xml配置文件LoggerRegistry loggerRegistry:存储loggergetLogger的处理流程LogManager...
2020-04-06 23:06:04
252
原创 spring ioc 源码阅读
xml的读入abstractXmlApplicationContext.java的loadBeanDefinitions1bean的解析->beandifinition真正负责读取xml文件的类是XmlBeanDefinitionReaderdoLoadBeanDefinitions读入一个dom对象 然后进行解析解析xml文件完成后会得到一个GenericBeanDefini...
2018-12-10 10:21:24
153
原创 mybatis源码阅读记录
文章目录书名书名深入浅出MyBatis 技术原理与实战杨开振著这里讲了基本api和部分mybaits的源码导读非常推荐#大体结构SqlSessionFactory (defaultSqlSessionFactory)构建SqlSessionconfiguration xml文件的内存表达MappedStatement:保存mapper里面的一个节点(select,insert,d...
2018-11-10 16:18:37
184
转载 让一个端口同时做两件事
让一个端口同时做两件事:http/https和ssh相信很多人都在YY:能不能让80端口分析连接协议,如果是http协议就让服务器交给http服务程序(如Apache、Nginx等)处理,如果是ssh协议就交给ssh服务程序(如OpenSSH Server)处理呢?答案显然是有的。首先,配置http服务程序监听8080端口或者让https服务监听8443端口,配置ssh服务程序监听22端口。具体不...
2018-07-13 17:47:30
693
原创 机器频繁FULLGC解决
1 起因小组中遇到了虚拟机fullgc曾多的问题.监控显示如下:监控显示.每分钟进行5次fullgc. 每次大约半秒..不过在我看来这么多fullgc并不是大问题..但是,组里面的大大说正常情况下是没有fullgc的.好吧..可能因为这个系统是重要的服务,500ms很珍贵吧..2 机器配置服务部署在两种机器上面,出问题的是内存4GB机器...6GB机器没有出问题.虚拟机配置..调关键的说就是4GB...
2018-04-19 23:40:38
2446
原创 interface代理在mybatis中的应用
0前言mybatis有一个很好的特性.在写mapper的时候,我们只需要在代码中写出mapper的interface,具体的实现由mybatis根据xml帮助我们实现.今天我们可以详细了解这其中的奥秘.总的来说,使用的基本原理就是java的动态代理.当Mapper 对象其实是一个java代理.代理的处理类型为MapperProxy<T> 其中T就是我们的接口类型.怎么样有模板函数出现了当一个查询出
2018-03-04 23:24:53
373
原创 后端接口权限验证
接口验证有两种,一种是基于人的验证,比如需要调用者提供人员信息.第二种则是基于接口本身.接口本身的验证是因为很多调用者并不是一个人,可能仅仅是一个定时启动的脚本,无法采用用户名密码的形式来进行验证.接口本身的验证基本方法就是在调用的时候在请求后方添加一个密钥,作为验证身份的令牌.# 基于简单密码双方约定密码,密码正确验证通过# 参数签名方式步骤通常如下:
2018-01-08 16:33:48
15043
转载 RESTAPI设计规则
再oschina上面看到一篇翻译文章,介绍了Api的一些设计规则,REST设计规则受益匪浅,进行转载 原文链接 Why: Because we try to enforce development of sanely constructed RESTful interfaces, which team members and clients can consume simply and c
2017-07-15 11:09:35
741
转载 响应式图片
定义: 根据不同的屏幕大小换网页上展示的图片原理:1第一个原理就是说根据cookie。首次载入,先给一个默认的图片,然后确定屏幕的大小加载合适图片然后把默认图片替换掉。 再次载入直接根据cookie判断就好了2根据html属性改变图片大小<img srcset="elva-fairy-320w.jpg 320w, elva-fairy-480w.jpg 480w
2017-03-05 14:56:04
396
原创 html任务2 css
1css的对于层叠来说,共有三种主要的样式来源:浏览器对HTML定义的默认样式。 用户定义的样式。 开发者定义的样式,可以有三种形式: 定义在外部文件(外链样式):本教程中案例主要是通过这种形式定义样式。 在页面的头部定义(内联样式):通过这种形式定义的样式只在本页面内生效。 定义在特定的元素身上(行内样式):这种形式多用于测试,可维护性较差。2css的选择id选择#类选择 .属性选
2017-02-26 17:41:28
344
原创 html基础任务1
a元素在新窗口打开需要知道target属性为_blanktableborder =1 给表格加一个边框 跨列的添加colspan=2 跨行的添加rowspan=2
2017-02-25 21:08:15
294
原创 linux 内存
文件内存https://www.ibm.com/developerworks/cn/linux/l-cache/定义文件 Cache 管理指的就是对这些由操作系统分配,并用来存储文件数据的内存的管理cache的衡量性Cache 管理的优劣通过两个指标衡量:一是 Cache 命中率,Cache 命中时数据可以直接从内存中获取,不再需要访问低速外设,因而可以显著提高性能;二是有效 Cache 的比率,有
2017-02-25 20:36:19
275
原创 python __getattribute__ 和 __getattr__的区别
python 再访问属性的方法上定义了__getattr__() 和 __getattribute__() 2种方法,其区别非常细微,但非常重要。如果某个类定义了 __getattribute__() 方法,,在 每次引用属性或方法名称时 Python 都调用它(特殊方法名称除外,因为那样将会导致讨厌的无限循环)。如果某个类定义了 __getattr__() 方法,找不到的时候再去访问,P
2017-02-14 23:06:14
521
原创 <eloquentjavascript>Program Structure
Expressions and statements A fragment of code that produces a value is called an expression. expression build the statement
2017-02-07 08:20:21
336
原创 <eloquentjavascript>Values, Types, and Operators
NumbersJavaScript uses a fixed number of bits, namely 64 of them, to store a single number value.comparewhen null or undefined occurs on either side of the operator, it produces true only if both side
2017-02-07 08:09:10
214
原创 compose.js(未完成)
compose.js主要用于实现集成的一个javascript库基础用法新建一个对象 Widget = Compose({ render: function(node){ node.innerHTML = "hi"; } }); var widget = new Widget(); widget.render(
2017-02-07 07:56:36
650
转载 cpu后缀讲解
Intel桌面式CPUX后缀 X代表Extreme,中文意思是至尊级,代表同一时代性能最强的CPU。如Core i7-5960X、Core i7-4960X。X代表在同一代中只有一款CPU黄袍加身,地位至高无上。加上没有竞争对手可以望其项背,从露面都退出市场,期待的弑君者没有出现。Sandy Bridge时代到现在,竞争的天平一直向Intel倾斜。K后缀自从Sandy Bridge时代Intel限制
2017-01-18 15:37:45
1451
原创 peewee
models and fields不指定主键自动产生一个主键meta信息会自动继承到所有子类Once the class is defined, you should not access ModelClass.Meta, but instead use The ModelOptions class (meta class) implements several methods which may
2017-01-12 11:20:29
2365
原创 《python 入门经典》读书笔记
第一章 开始模块文件1python 在import 或者from import的时候回执行一次文件。但是只执行一次。不同的文件如果同时引用同一个文件,也只会执行一次。并且获得该文件的顶层的名字 可以使用reload函数在执行一次文件dirdir不带任何参数的话返回的是当前交互环境空间内所有定义的名字自己理解 就是所有可用的名字,因为我from import 里面的名字也在环境变量python 模
2017-01-08 21:33:11
438
转载 promise 的使用
http://www.cnblogs.com/lvdabao/p/es6-promise-1.html去年6月份, ES2015正式发布(也就是ES6,ES6是它的乳名),其中Promise被列为正式规范。作为ES6中最重要的特性之一,我们有必要掌握并理解透彻。本文将由浅到深,讲解Promise的基本概念与使用方法。 ES6 Promise 先拉出来遛遛
2016-12-20 19:18:42
363
原创 jquery 学习笔记4 ajax
loadoad() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback);可选的 callback 参数规定当 load() 方法完成后所要允许的回调函数。回调函数可以设置不同的参数: responseTxt - 包含调用成功时的结果内容 statusTXT - 包含调用的状态 xhr - 包含 XMLHttp
2016-12-16 13:57:03
304
原创 jquery 学习笔记3 遍历
祖先parent()返回被选元素的直接父元素。 parents()方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。$(document).ready(function(){ $("span").parentsUntil("div");})后代children() 方法返回被选元素的所有直接子元素返回类名
2016-12-16 13:37:18
244
原创 jquery 学习笔记2 HTML
jQuery HTMLtext()、html() 以及 val()三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回表单字段的值attr()获取元素属性的值 设置元素属性的值 还可以用一个函数来进行更改 (“button”).click(f
2016-12-16 13:07:50
286
原创 python 变量作用域
一般规则1定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量 2.函数内部的变量名如果是第一次出现,且出现在=符号后面,且在之前已被定义为全局变量 3.函数中使用某个变量时,如果该变量名既有全局变量也有局部变量,则默认使用局部变量 4.在函数中将某个变量定义为全局变量时需要使用关键字global坑1 这样会报错。因为在函数内部已经重新定义var。不过在之
2016-12-15 18:27:26
259
原创 jquery 学习笔记0 这个笔记是在工作中看到的。比较杂
datadata方法是往元素里面增加一个属性。one定义和用法 one() 方法为被选元素附加一个或多个事件处理程序,并规定当事件发生时运行的函数。 当使用 one() 方法时,每个元素只能运行一次事件处理器函数。语法 $(selector).one(event,data,function) 参数 描述 event 必需。规定添加到元素的一个或多个事件。 由空格分隔多个事件。必
2016-12-15 17:58:53
296
原创 jquery 学习笔记1
操作元素选择器$(this).hide()演示 jQuery hide() 函数,隐藏当前的 HTML 元素。$("#test").hide()演示 jQuery hide() 函数,隐藏 id="test" 的元素。$("p").hide()演示 jQuery hide() 函数,隐藏所有 <p> 元素。$(".test").hide()演示 jQuery hide() 函数,隐
2016-12-14 01:16:03
308
原创 python 格式化字符串
string.Formatter 这个类用于格式化字符串。 这个类的format是一个格式化的重要方法 这个类也提供了很多其他的函数用于帮助格式化字符串。如果不需要定制的话。应该是可以忽略掉得。比如parse get_field get_value check_unused_args 等等格式化的一些例子 按照位置>>> '{}, {}, {}'.format('a', 'b',
2016-12-12 16:20:18
311
原创 flask快速入门
第一个flask程序from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'if __name__ == '__main__': app.debug = True #调试模式 app.run()url变量在url中的路径可以当做变量
2016-12-11 12:09:35
564
原创 git
版本变更查看版本提交 git log --pretty=oneline版本变更git reset --hard HEAD^版本向前git reflog修改修改回退 1回退工作区文件git checkout -- filenamecheckout一个文件。 checkout到缓存区的状态。如果没有缓存区那么回退到版本库状态2回退缓存区文件git reset HEAD file可以把暂存区的修改撤销
2016-12-10 00:10:59
264
原创 python 学习笔记7进程和线程
多进程os 系统模块提供了进程的很多东西 os.getpid() 获取进程id pid = os.fork() fork创建一个新的进程 父进程返回子进程id 子进程返回0multiprocessingmultiprocessing是一个跨系统的模块,因为windows没有提供forkfrom multiprocessing import Process import os# 子进程要执行
2016-12-08 20:23:41
364
原创 python学习笔记6IO
文件读写f = open('/Users/michael/test.txt', 'r')f.read()f.close()读写文件可能产生错误IOErrortry: f = open('/path/to/file', 'r') print(f.read())finally: if f: f.close()但是每次都这么写实在太繁琐,所以,Python引入
2016-12-08 15:30:19
386
原创 python学习笔记5 面向对象编程
面向对象编程class Student(object): passclass后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再讲,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名
2016-12-06 10:20:38
392
原创 python学习笔记4
模块 一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。 假设我们的abc和xyz这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如mycompany,按照如下目录存放: 每一个包目录下面都会有一个init.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,init.
2016-12-04 18:12:44
399
原创 如何学习新知识
最近学习知识的方法感觉遇到了很大的问题。今天看了一下罗辑思维然后记录一下如何学习。再加上自己的一些理解吧。1如果想到有什么事情需要去做。那就要马上去做,不能脱。2知识有输入有输出3如何是一个好的学习环境,那就是不断对你的学习给与反馈。这样你才能真正的掌握知识。4对于学习来说就是你要和知识不断的去互动。如果只是被动的接受知识,那么不是学习,学到的东西也不扎实5知识要有记录,要和自
2016-12-03 15:44:43
692
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人