看到一道面试题,["1", "2", "3"].map(parseInt) 答案是多少? 心生好奇,做做看,发现卡住,没什么头绪.首先对parseInt不了解,只好百度,看了MDN的解释一度以为parseInt(string, radix)是在[radix]进制下,string转换成数字是多少.于是简单地进行一个测试,parseInt(3,2),应该很简单吧,然鹅返回了个NaN,what?百度知道给了我答案,parseInt(string, ra…
由异常:Repeated column in mapping for entity/should be mapped with insert="false" update="false 引发对jpa关联的思考 首先说一下以上问题的解决方法 //主键列 显示指定只读 --这块是解决该文的代码@Column(name = "xxx", insertable = false, updatable = false) @OneToMany(fetch = Fetch…
软件工程课程的一个题目:写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来.文本文件大约是30KB~300KB大小. 首先说一下这边的具体的实现都是在linux上实现的.没有大型IDE的性能检测.其实30KB还不是瞬间的事情,基于语言和一些简单的策略.所以在后面可能会尝试考虑增加文件大小到G级,然后发生的东西.我只能是从简单的原理研究.至于调试我只能写个简单的shell来自己检测一下.嗯,就这样吧.能力还是有点小白,特别是看了v_JULY_v 的海量数据处理http…
公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vue双向绑定的实现原理,才发现它和Angular.js双向绑定的实现原理完全不同,Angular是用的数据脏检测,当Model发生变化,会检测所有视图是否绑定了相关数据,再更改视图.而Vue使用的发布订阅模式,是点对点的绑定数据. Vue的数据绑定只有两个步骤,compile=>link. 我一直在想…
字符集.字符序的概念与联系 在数据的存储上,MySQL提供了不同的字符集支持.而在数据的对比操作上,则提供了不同的字符序支持. MySQL提供了不同级别的设置,包括server级.database级.table级.column级,可以提供非常精准的设置. 什么是字符集.字符序?简单的来说: 字符集(character set):定义了字符以及字符的编码. 字符序(collation):定义了字符的比较规则. 举个例子: 有四个字符:A.B.a.b,这四个字符的编码分别是A = 0, B = 1,…
学习了孟老师的这几节课程,我学习了如何搭建一个简单的命令行menu小程序,从最简单的程序开始,一步步的根据软件工程的一般规律,进行逐步开发.完善,最终实现了一个比较通用的menu程序,可以让别的开发者进行作为内嵌子程序调用执行.经过这段时间的学习,收益匪浅,于是将一些学到的东西总结如下. 为了menu小程序的开发,首先需要配置VSCOde 的C++环境,因为VScode不带C++的编译器. 1 编译和环境配置 首先从官网下载MinGW-w64,下载Install安装程序,安装过程十分简单,一路n…
关键代码拆解成如下图所示(无关部分已省略): 起初我认为可能是这个 getRowDataItemNumberFormat 函数里面某些方法执行太慢,从 formatData.replace 到 unescape(已废弃,官方建议使用 decodeURI 或者 decodeURIComponent 替代) 方法都怀疑了一遍,发现这些方法都不是该函数运行慢的原因.为了深究原因,我给 style.formatData 传入了不同的值,发现这个函数的运行效率出现不同的表现.开始有点疑惑为什么 style…
BFC布局规则: 内部的Box会在垂直方向,一个接一个地放置. Box垂直方向的距离由margin决定.属于同一个BFC的两个相邻Box的margin会发生重叠 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反).即使存在浮动也是如此. BFC的区域不会与float box重叠. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素.反之也如此. 计算BFC的高度时,浮动元素也参与计算 其中第4条:BFC的区域…
起因 周五改一个checkbox的display属性被错误地设置为none的bug. 经debug发现, 有两个地方修改了display属性: 1) checkbox的controller; 2) checkbox的parent(container). 前者先将display属性更新为block(正确), 后者再次更新为none(错误). 普通的思路是, 修改checkbox的container的代码, 使其能正确更新display值. 但另有一种更巧妙的方法, 就是修改checkbox的con…
小强最近在项目中遇到了一个很奇怪的问题:在整改日志规范时,为了避免影响现有的代码结构以及改动尽可能小的前提下,在调用记日志的SDK处将某一个字段值首字母改为大写,代码示例如下: fmt.Println("--------SayHello begin------------") //项目中这里的a实际是作为参数传入,只是可能为空串,不为空串,这样写肯定没问题 a := "" b := strings.ToUpper(a[:1]) + a[1:] fmt.Println…
一场机器迁移引起的思考 最近团队一台机器老化了,准备做全量迁移,一不小心,就把100多个G的/data目录放到了新机器的/data/data目录下,上愁了,怎么削减一层data目录呢?难倒像Windows一样剪切过来吗?可是有100多个G啊?!抱着试试的心态,运行mv命令,没想到系统瞬间就完成了.为什么Linux可以这么快速剪切呢?这一切都要从Linux对文件的管理机制说起的. inode是什么 要想理解inode,就要从Linux的文件存储开始说起. 文件存储在硬盘上,硬盘上最小的存储单位叫做…
回到目录 进制 我是一个程序猿,我喜欢简单的数字,十进制如何,数字太多,有10种数字组成,但由于它广为人知,所有使用最为广泛,人们的惯性思维培养了十进制,并说它是最容易被计算的数字,事实上,在计算机里,最简单的进制是当然是二进制,原因最为直接,因为它只有两种数字,0和1. 二进制里的最简单的运算 不是加,也不是减,而是位移,即将数字水平向左或者向右进行移动,在数学里的实际意义就是乘以2和除以2,对于每种高级程序设计来说都有自己的位运算符,大多部都使用<<和>>来表示,对于位运算,它…
if(i&1==1) 表示 如果是 奇数 则...i&1 -- 按位与运算,取 2进制整数 i 的最低位,如果最低位是1 则得1,如果最低位是0 则得0. 奇数 i 的最低位 是1,偶数i 的最低位 是0. 负数二进制表示: 计算机对有符号数(包括浮点数)的表示有三种方法:原码.反码和补码, 补码=反码+1.在 二进制里,是用 0 和1 来表示正负的,最高位为符号位,最高位为 1 代表负数,最高位为 0 代表正数. 以负数-5为例: 1.先将-5的绝对值转换成二进制,即为0000 0101…
32位二进制里有多少个1 https://blog.csdn.net/zhangsj1007/article/details/81411063 有这样一道计算机问题"32位二进制里面有多少个1".这是一道比较普遍也比较简单的计算机题目,但是之前看过一篇文章,不单单是答案,而是在各个方面对该问题做了考虑.看了之后,很受启发,现在把这篇文章整理一下.         简单明了的方法          最简单明了的方法,就是遍历一遍这个32位的数字的各个二进制位,然后数一数1的个数.    …
进制转换之负数二进制 负数的二进制表现形式 6 = 110 -6 : 其实就是 6 的二进制取反再 + 1 一个整数在内存中是占 4 个字节 **取反:将二进制里的 1 变成 0,0 变成 1. 以6的二进制 110举例 : 0000-0000 0000-0000 0000-0000 0000-0110 变成 : 1111-1111 1111-1111 1111-1111 1111-1001:取反 0000-0000 0000-0000 0000-0000 0000-0001:加 1 -----…
1.某侦察队接到一项紧急任务,要求在A.B.C.D.E.F六个队员中尽可能多地挑若干人,但有以下限制条件:侦察兵A和B两人中至少去一人: a+b>=1(由于每个队员有两种状态:去与不去,假设不去为0,去为1:把每个条件用等式表示出来,用for循环让每个条件都满足)A和D不能一起去: a+d<=1A.E和F三人中要派两人去: a+e+f == 2B和C都去或都不去: b+c !=1C和D两人中去一个: c+d==1若D不去,则E也不去. d+e==0 || d=1问应当让哪几个人去? ; a &…
https://mp.weixin.qq.com/s/1VP7l9iuId_ViP1Z_vCA-w 某天早上,毛老师在群里问「cat 上怎么看 gc」. 好好的一个群 看到有 GC 的问题,立马做出小鸡搓手状. 之后毛老师发来一张图. 老年代内存占用情况 图片展示了老年代内存占用情况. 第一个大陡坡是应用发布,老年代内存占比下降,很正常. 第二个小陡坡,老年代内存占用突然下降,应该是发生了老年代 GC. 但奇怪的是,此时老年代内存占用并不高,发生 GC 并不是正常现象. 于是,毛老师查看了 GC…
一.引言 上一节我们总结了跳跃表的知识,我们知道了有序数组可以用跳跃表实现,也可以用压缩列表来实现,这一篇文章我们来总结一下压缩列表相关的知识. 二.压缩列表简介 定义:压缩列表 ziplist 本质上是一个字节数组,每个元素可以是一个字节数组或一个整数. PS:Redis的有序集合.散列.列表都直接或间接用到了压缩列表. 三.压缩列表的存储结构 我们通过一张图来直观地分析压缩列表的结构: zlbytes :压缩列表的字节长度,占4个字节,因此压缩列表最多有232-1个字节 . zltail :…
JavaScript 是个灵活的脚本语言,能方便的处理业务逻辑.当需要传输通信时,我们大多选择 JSON 或 XML 格式. 但在数据长度非常苛刻的情况下,文本协议的效率就非常低了,这时不得不使用二进制格式. 去年的今天,在折腾一个 前后端结合的 WAF 时,就遇到了这个麻烦. 因为前端脚本需要采集不少数据,而最终是隐写在某个 cookie 里的,因此可用的长度非常有限,只有几十个字节. 如果不假思索就用 JSON 的话,光一个标记字段 {"enableXX": true} 就占去了一…
继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再…
---恢复内容开始--- 字节流VS缓冲流 java.io包中的类大致可以分为:InputStream.OutputStream.Reader.Writer.InputStream/Reader可以理解为input from数据源,OutputStream/Writer可以理解为output to数据目的地.他们的前者处理的是字节,后者处理的是字符.而数据源则可能是来自硬盘上的文件.内存中的变量.网络的数据等等. 字节流:数据是以字节为单位进行读写操作 缓冲流:将一个一个的字节先存入到缓冲区中…
  首先,请允许我抄袭一段你知道的parseInt   以下节选自parseInt - JavaScript | MDN 实际上你连这些基础都没掌握 概述 parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数. 语法 1 parseInt(string, radix); 参数 string 要被解析的值.如果参数不是一个字符串,则将其转换为字符串.字符串开头的空白符将会被忽略. radix 一个2到36之间的整数值,用于指定转换中采用的基数.比如参数"10&qu…
在学校老师就教1byte = 8bit,一个Byte在内存中占8个房间.每个房间都有门牌号.找到内存中的内容就找门牌号,寻址什么的,虽然在听,但是脑袋里一头雾水,到现在只知道会用就行,但原理也不是那么明白. 这里我记录下到现在我自己的理解,我知识有限,若有错误请见谅并指出,一起学习: 首先:计算机内部是只认识高低电平的,也就是二进制里的0和1,所有的字符串数据最终都是转换成0和1的形式存放在内存里的. 1bit就只能存放一个0或者是1,一个Byte用8个Bit表示,比如说: 0: 0000 00…
原文地址:http://blog.csdn.net/yakson/article/details/9875731 前言 刚开始本来只想来测试一下Thumbnails生成缩略图的效果的,顺便来学一下jsp文件,开始没有使用commons-fileupload上 传组件,自己用纯jsp代码来编写,过程相当曲折.所以就不建议大家去编写纯JSP的上传代码了,想写的可以参考下commons-fileupload 的源码,里面很详细. 一.JSP上传文件 大家都知道,上传文件是以二进制上传的,这样可以让文件…
引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone 其实也就是对象复制.复制又分为了浅度复制(Shallow Copy)和 深度复制(Deep Copy),浅度复制 和 深度复制又是以 如何复制引用类型成员来划分的.由此又引出了 引用类型 和 值类型,以及相关的对象判等.装箱.拆箱等基础知识. 于是我干脆新起一篇,从最基础的类型开始自底向上写起了.我仅仅想将对于这个主题的理解表述出来,…
引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又分为了浅度复制(Shallow Copy)和深度复制(Deep Copy),浅度复制 和 深度复制又是以 如何复制引用类型成员来划分的.由此又引出了 引用类型和 值类型,以及相关的对象判等.装箱.拆箱等基础知识. 于是我干脆新起一篇,从最基础的类型开始自底向上写起了.我仅仅想将对于这个主题的理解表述出来,一是总…
如果一个数是2^n,说明这个二进制里面只有一个1.除了1. a  = (10000)b a-1 = (01111)b a&(a-1) = 0. 如果一个数不是2^n, 说明它的二进制里含有多一个1. a = (1xxx100)b a-1=(1xxx011)b 那么 a&(a-1)就是 (1xxx000)b, 而不会为0. 所以可以用这种方法判断一个数是不2^n.…
原文网址:http://www.blogjava.net/sound/archive/2008/08/21/40499.html 现在的计算机图书发展的可真快,很久没去书店,昨日去了一下,真是感叹万千,很多陌生的出版社,很多陌生的作者,很多陌生的译者,书名也是越来越夸张,什么××天精通××,精通××编程, ××宝典等等,书的印刷质量真的很好,纸张的质量也是今非昔比啊,但书的内容好象却是越来越让人失望,也许是我老了,我的思想我的观念已脱离现实社会,也许是外面的世界变化得太快,我编程数月,出去一走,…
本文摘自:http://blog.csdn.net/friendbaby/article/details/6822690 刚才在百度知道上看见一个网友问int型的数最大能存多少.这个问题其实计算机系统结构里有讲解. 首先,我们要知道在计算机里怎么存储数字的.在计算机里,对数字编码有3种方式:原码.补码.反码.原码其实就是10进制数直接转2进制数的结果.比如:十进制的18,在二进制里是10010.那这里的10010就是原码.我们可以sizeof一下我们自己的电脑上int型占几个字节.我的是4个字节…
Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example:Given num = 16, return true. Given num = 5, return false. Follow up: Could you solve it without loops/recursion? 4的幂次方 二进制里只有1个1 判断二进制里有没有1个1 用n & (n-1)=…