分类: 技术 (22)
重新出发000001-阅读文章"让人疑惑的Java代码"。
有些工作三四年的朋友问我,觉得很迷茫,技术水平如何再次提高,问了一下,朋友甚至连String这个类的源码都没有看过。
有时候,会去帮同事调试一下代码,调试过程中,发现其连JDK源码都还没关联上,工作中遇到不熟的API或出现问题,直接就打开百度去查,从来不关注一下底层实现。
还有一些朋友,工作了几年了,想跳槽居然还在背面试题,我好奇要了一份,点开看都是诸如:int和Integer有什么区别?数组有没有length()方法?String有没有length()方法?String和StringBuilder、StringBuffer的区别?HashMap和HashTable有什么区别?ArrayList和LinkedList有什么区别?HashMap的工作原理是什么?不禁有些好笑,我说你工作了这么多年,这些东西还需要背吗?难道不是作为一个Java程序员必需应该掌握的内容吗?可叹。
Java这门语言比较简单易用,常用的工具类集合类都封装好了,导致大部分人拿来就用,也不去想这里面是怎么实现的,做了哪些优化等等。
开这个小专栏,一是想帮助一下这个群体,把自己的一写见解分享出来。二是引导一下新手,更高效率的去学习Java,学习最好的方法是知其然并知其所以然。
----我就是这种人了,但是我意识到了。
js中,==和===的区别
alert(‘0’==0);//true alert(‘0’===0);//false alert(undefined==null);//true alert(null===0);//false alert(‘‘==0); //true alert(’’===0); //false
ubuntu下安装r语言环境。(转)
收藏一个R语言的安装步骤,两种情况都可以使用 Ubuntu下安装R很方便,可以在软件管理中心搜索r-base直接安装,也可以将CRAN的相关目录添加到源,然后通过apt-get安装: sudo apt-get install r-base 不过如果想清楚地知道R安装过程中的细节并控制相关的设置,可以采用手工编译.tar.gz的方式安装。 首先需要到CRAN上下载R的源码包(用wget命令下载:wget URL),我使用的是最新的版本R-3.1.0.orig.tar.gz。将其拷入某个目录,并解压缩: tar -zvxf R-3.1.0.orig.tar.gz 然后进入目录R-3.1.0,运行./configure检查安装的依赖环境并配置安装文件: ./configure –prefix=/home/me/R –enable-R-shlib 注意prefix参数可以设置R将要安装的路径,enable-R-shlib可以保证lib目录下的动态库能够共享,这个选项一定不要忘记添加,否则以后安装某些包的时候会出现Error in dyn.load的错误。 系统会提....
Apache与Tomcat联系及区别
Apache与Tomcat都是Apache开源组织开发的用于处理HTTP服务的项目,两者都是免费的,都可以做为独立的Web服务器运行。Apache是Web服务器而Tomcat是Java应用服务器。 Apache:是C语言实现的,专门用来提供HTTP服务。 特性:简单、速度快、性能稳定、可配置(代理) 1、主要用于解析静态文本,并发性能高,侧重于HTTP服务; 2、支持静态页(HTML),不支持动态请求如:CGI、Servlet/JSP、PHP、ASP等; 3、具有很强的可扩展性,可以通过插件支持PHP,还可以单向Apache连接Tomcat实现连通; 4、Apache是世界使用排名第一的Web服务器。 Tomcat:是Java开发的一个符合JavaEE的Servlet规范的JSP服务器(Servlet容器),是 Apache 的扩展。 特性:免费的Java应用服务器 1、主要用于解析JSP/Servlet,侧重于Servlet引擎; 2、支持静态页,但效率没有Apache高;支持Servlet、JSP请求; 3、Tomcat本身也内置了一个HTTP服务器用于支持静态内容,可以通过Tom....
mac上安装mysql5.7.20
图不见了,看笔记吧:http://note.youdao.com/noteshare?id=c136b44ec9495661c95346ba3418435f 1、使用安装包安装mysql,到官网下载社区版本 2、选择pkg文件安装,下一步直到安装到结束。最后会弹出一个包含临时密码的弹框,记得保存。如果手残点过了,在通知里面会有。 3、安装成功后,需要进行配置操作: 在系统偏好设置中,找到mysql 运行之: 显示绿色running。 4、配置命令行。 执行vim ~/.bash_profile 添加mysql的bin目录(/usr/local/mysql/bin) wq保存退出,再source一下。 5、进入mysql 执行:mysql -u root -p 输入刚才的密码,我这里遇到一个坑。 密码是“:#Y****”,冒号也是。 6、修改密码 SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘我是你要改成的密码’); …………………….. 完活儿收工。
在nginx的日志中增加cookie的输出
图不见了,看笔记吧:https://note.youdao.com/share/?id=ff0f6fe3052fcf5ba944afe640bc7bee&type=note#/ 记录日志有几种需求。直接将全部的cookie信息打印、指定所需key的打印、指定多个key的信息打印。 分情况记录: 1、获得全部的cookie信息。 这种情况可能不太常用,但是做法很简单。直接在nginx.conf中添加$http_cookie即可。 增加了一个$http_cookie 字段。 日志输出时使用main格式化。 2、指定所需的key进行打印。 获得全部的情况可能是不符合大多数需求的。可能很多场景下,只想获得sessionid等信息。此时,我们可以按照使用正则匹配所需的key。 1)增加变量 在nginx.conf.d目录下查找配置文件。在server中添加: 声明一个变量$cookie_key 从cookie中取值并用正则匹配出所需key的值。 复制到变量$cookie_key 2)使用变量 回到nginx.conf文件中。增加刚才创建的变量即可。 3、指定多个key值....