201708-16 进阶必备 - Java 反射由浅入深 本博文主要记录我学习Java反射(reflect)的一点心得,在了解反射之前,你应该先了解Java中的Class类,如果你不是很了解,可以先简单了解下。一、Java反射机制参考了许多博文,总结了以下个人观点,若有不妥还望指正:Java反射机制在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态的获取信息以及动态调用对象的方法... 继续阅读 >
201707-28 Java的21个技术点,你知道吗? 关于Java的编程知识,有人会问哪几个是重要的知识点,不知道大家是否知道呢?给大家分享一下。1.JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此里面的概念有一些简单的了解即可。不过对于一个有着3年以上Java经验的资深开发者来说,不会JVM几乎是不可接受的。JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有... 继续阅读 >
201707-28 9个最佳的大数据处理编程语言 大数据的浪潮仍在继续。它渗透到了几乎所有的行业,信息像洪水一样地席卷企业,使得软件越发庞然大物,比如Excel看上去就变得越来越笨拙。数据处理不再无足轻重,并且对精密分析和强大又实时处理的需要变得前所未有的巨大。那么,在巨大的数据集中进行筛选的最好工具是什么?通过和数据骇客的交流,我们知道了他们用于硬核数据分析最喜欢的语言和工具包。R语言在这些语言名单中,如果R语言排第二,那就没其他能排第... 继续阅读 >
201707-26 PHP 程序员如何快速进行 Java 开发 入门不要拿着放大镜去学就像盲人摸象一样,他要想弄清楚大象的真实面貌可能要摸很久,就好比我们拿着放大镜在学习java一样,java经过这么多年的发展,可以说非常庞大。如果我们要知道大象长什么样,就应该放下手中的放大镜,向后退远点,反而能够非常清晰的看到它的全貌。学习一门新的语言也一样,有很多很多网上的教程,非常的大而全,一般得系统的学习30~60小时之后才能正式的接触项目开发。基础很重要,但是学习了太... 继续阅读 >
201705-09 Java多线程基础 线程的等待与唤醒 题图:花啡,豆是买咖啡机送的,花是上周阳朔旅游买的桂花,给它起了个名字,叫Sunday。咖啡味淡了一点点,多了一份桂花的清香。本篇我们来研究一下wait()notify()notifyAll()。DEMO1:wait()与notify()publicclassTest{staticclassThreadOneextendsThread{privateCallbackmCallback;@Overridepublicvoidrun(){work();if(mCallback... 继续阅读 >
201705-06 Android工作经验之开发技术分享 1.全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。2.数据库表段字段常量和SQL逻辑分离,更清晰,建议使用Lite系列框架LiteOrm库,超级清晰且重心可以放在业务上不用关心数据库细节。3.全局变量放全局类中,模块私有放自己的管理类中,让常量清晰且集中.4.不要相信庞大的管理类的东西会带来什么好处,可能是一场灾难,而要... 继续阅读 >
201704-13 Java程序员应当知道的10个面向对象设计原则 面向对象设计原则是OOPS编程的核心,但我见过的大多数Java程序员热心于像Singleton(单例)、Decorator(装饰器)、Observer(观察者)等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承”等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS和SOLI... 继续阅读 >
201703-01 Java线程内存模型,线程、工作内存、主内存 java线程内存模型线程、工作内存、主内存三者之间的交互关系图:keyedeas所有线程共享主内存,每个线程有自己的工作内存refreshinglocalmemoryto/frommainmemorymustcomplytoJMMrules产生线程安全的原因线程的workingmemory是cpu的寄存器和高速缓存的抽象描述:现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内存。线程耗... 继续阅读 >
201702-23 35 个 Java 代码性能优化总结 前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可... 继续阅读 >
201702-22 JAVA 常用集合内部机制原理 对于常用的集合大家都不陌生,但是深入到内部原理可能都是一知半解,通过阅读源码理解如下。ArrayListArrayList内部就是一个默认大小为10的动态对象数组容器,每当add一个新数据的时候,如果大于原来的容器大小,则会通过Arrays.copyOf把容器大小增加到原来的1.5倍,以此类推。当可以预知数据大小,可以通过initialCapacity来默认设置动态数据的大小,减少扩容带来的资源消耗。时间复杂度:get()-直接读取... 继续阅读 >
201702-17 40个Java集合面试问题和答案 1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。集合框架的部分优点如下:(1)使用核心集合类降低开发成本,而非实现我们自... 继续阅读 >
201702-14 10个技巧,让你在 2017 年成为更好的Node开发者 摘要:在2012年,我加入了Storify并开始使用Node作为我的主要语言。从那以后,我从未回首过去并觉得我错过了Python,Ruby,Java以及PHP,这些在过去10年里,我在web开发过程中使用的语言。下面我将列出10条建议,这些建议可以帮助你在2017年成为一个更好的Node开发者。其中一些建议是我在日常实践中所学到的,另一些是从那些写了最流行的Node和npm模块的人们身上学到的。下面是我们将要介绍的内容:在2012年,我加入... 继续阅读 >
201612-30 编写更好的 Java 单元测试的 7 个技巧 测试是开发的一个非常重要的方面,可以在很大程度上决定一个应用程序的命运。良好的测试可以在早期捕获导致应用程序崩溃的问题,但较差的测试往往总是导致故障和停机。虽然有三种主要类型的软件测试:单元测试,功能测试和集成测试,但是在这篇博文中,我们将讨论开发人员级单元测试。在我深入讲述具体细节之前,让我们先来回顾一下这三种测试的详细内容。软件开发测试的类型单元测试用于测试各个代码组件,并... 继续阅读 >
201612-30 Android开发必知的java嵌套类 嵌套类指定义在另一个类的内部的类,嵌套类的存在只是为了他的外围类。嵌套类有四种:静态成员类,非静态成员类,匿名类,局部类。静态成员类是最简单的一种嵌套类。最好把它看做是一个普通的类,只是恰好定义在另一个类的内部。静态成员类可以访问外围类的所有成员,包括那些私有的变量。静态成员类同样遵守可访问性规则,如果将它定位私有,它就指在外围类的内部才能访问到。在Android中最为熟悉lis... 继续阅读 >
201612-23 Java开发代码性能优化总结 代码优化的目标:减小代码体积提高整个系统的运行效率代码细节优化尽量指定类,方法的final修饰符带有final修饰的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的.为类指定final修饰符可以让类不可以被继承,为方法指定final可以让方法不可以被重写。如果指定一个类为fianl,该类的所有方法都是final的。Java编译器会寻找机会内联所有的... 继续阅读 >
201611-25 Java程序员变优秀的10个要点 1.拥有扎实的基础和深刻理解OO原则对于Java程序员,深刻理解面向对象编程这一概念是必须的。没有OOPS的坚实基础,就领会不了像Java这些面向对象编程语言的美。光学习OO原则的定义用处不大,关键是要学会如何应用这些原则用一种OO的方式去设计解决方案。因此,我们应该对对象建模、继承、多态、设计模式有一个很好的认识。2.掌握核心API如果你不知道语言结构和核心API,那么即使你在理论知识上再怎么彪悍也是独... 继续阅读 >