技术文章
2017-03-18 14:50
这个类在日常的开发中,还是非常常用的。今天就总结一下Arrays工具类的常用方法。最常用的就是asList,sort,toStream,equals,copyOf了。另外可以深入学习下Arrays的排序算法,这个还是非常有用的。所有的方法都是在下面的类中进行测试的:public class ArraysTest { String[] array = new String[]{"a","c","2","1","b"};...
2017-03-17 13:03
物有本末,事有终始,知所先后,则近道矣 面试经历关于Java面试,你应该准备这些知识点关于Java面试,你应该准备这些知识点(续)前段时间抽空整理了上面两篇面试经历,收到不少的关注,很多同学私信我平时都是如何get到这些知识的,是否有一些相关的书单,Java的源码太多了,应该如何看,框架的代码应该如何阅读等等问题。现在想想,似乎以前也这样迷茫过,没有明确的方向,做过后端,做过前端,就因为啃完了一整本 《JavaScript高级程序设计》 ,在面试的时候信誓旦旦说只做前端,不写后端代码。直到后来,碰巧有机会让我重新捡起Java,很感激有这次机会,也慢慢的明确了自己的方向。...
2017-03-17 13:47
Java 方法在前面几个章节中我们经常使用到 System.out.println() ,那么它是什么呢?println() 是一个方法。System 是系统类。out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。...
2017-03-14 14:59
一、什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换成另一种状态。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。...
2017-03-13 13:56
在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像把标准答案熟练的说出来一样。抽象类和接口这篇文章讲到了他们的区别和联系,它们确实有很多相似的地方,但是从本质上看,或从语言的设计角度来看,这不是它们最本质的区别。不卖关子,我个人对这两个的理解:类是具体实例的抽象,比如一个json字符串的抽象;而抽象类就是类的抽象;接口就是抽象类的抽象,接口更像是一种协议...
2017-03-13 13:30
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。 下面几个例子展示了这一区别。 1、调用静态方法示例。 //-----------hasStaticMethod.java-----------------...
2017-03-13 13:26
java.lang.String 的 split() 方法, JDK 1.4 or laterpublic String[] split(String regex,int limit)示例代码 public class StringSplit { public static void main(String[] args) { String sourceStr = "1,2,3,4,5";...
2017-03-12 13:45
一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。例子: [java] view plain copy print?import java.util.vector; class cel { void method (vector vector) { ...
2017-03-12 13:28
随着网站逐渐变成"互联网应用程序",嵌入网页的 JavaScript 代码越来越庞大,越来越复杂。 网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。 Javascript 模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 但是,Javascript 不是一种模块化编程语言,它不支持"类"(class),更遑论"模块"(module)了。(正在制定中的 ECMAScript 标准第六版,将正式支持"类"和"模块",但还需要很长时间才能投入实用。)...
2017-03-12 13:52
可能由于网络、浏览器问题、缓存等原因,可能导致线上执行 js 的时候与开发环境并不一样,会抛出异常。js 异常基本上是前端开发工程师的家常便饭。如何记录,并使用它,却很少人关注。最近在考虑一个想法,基本上涉及到两步:收集和使用。 一、收集 对于 error 收集这一块,还是比较方便的,因为在各浏览器中都有一个接口:window.onerror:window.onerror = function(errorMessage, scriptURL, lineNumber) {...
2017-03-11 15:32
前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。...
2017-03-11 15:37
什么是"clone"? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。在 Java语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现clone()方法是其中最简单,也是最高效的手段。 Java的所有类都默认继承java.lang.Object类,在java.lang.Object类中有一个方法clone()。JDK API的说明文档解释这个方法将返回Object对象的一个拷贝。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用。二是拷贝对象与用 new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。...
2017-03-10 15:47
程序员自我封闭的性格应该属于职业病,整天把自己闷在代码其中,五姑娘倒是很熟练,但嘴巴越来越差。后续自己多查询下相关资料看如何处理这类的弊端,整理给各位朋友,我们一起来谈探讨…昨天的事只是说了自己郁闷的第一点 社交能力,今天说说第二点心机。相关人物:大领导A 小领导B 员工C 自己背景:我和领导B是老乡,C和领导B认识好多年,我俩都是领导B推荐进的公司,一直关系不错,最近领导B在我和C离职后和其他的员工因为股权的事闹的有点僵。...
2017-03-10 14:50
【编者按】本文作者为 OneAPM 工程师李哲,文章主要介绍前端知识对于编程的必要性。 这里说的前端知识是比较通俗的前端知识,包括网页,桌面或移动端程序的界面,命令行程序的提示等等,即和用户进行交互的那一部分。我的工作经历中,很多人是不在乎这一部分的,更有很多人觉得这个很 low,在年初的时候,还听到一位这样说,“前端无非就是 Copy Paste”,在前端技术发展这么迅猛的现在,还能说出这样的话,可见这个人的眼界是多么的狭小了,连冲他苦笑的时间都腾不出来。...
2017-03-10 14:59
1. 多线程概述1.1 多线程引入 由上图中程序的调用流程可知,这个程序只有一个执行流程,所以这样的程序就是单线程程序。假如一个程序有多条执行流程,那么,该程序就是多线程程序。1.2 多线程概述1.2.1 什么是进程?进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。1.2.2 多进程有什么意义呢?单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情。举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。也就是说现在的计算机都是支持多进程的,可以在一个时间段内执行多个任务。并且呢,可以提高CPU的使用率,解决了多部分代码同时运行的问题。...