Java
文章平均质量分 77
benpaobagzb
做人要谦虚
展开
-
webrtc开源项目总结
什么是WebRTC?众所周知,浏览器本身不支持相互之间直接建立信道进行通信,都是通过服务器进行中转。比如现在有两个客户端,甲和乙,他们俩想要通信,首先需要甲和服务器、乙和服务器之间建立信道。甲给乙发送消息时,甲先将消息发送到服务器上,服务器对甲的消息进行中转,发送到乙处,反过来也是一样。这样甲与乙之间的一次消息要通过两段信道,通信的效率同时受制于这两段信道的带宽。同时这样的信道并不适合数据原创 2016-03-15 11:46:34 · 3460 阅读 · 0 评论 -
Java程序员应该掌握哪些东西?
Java是热门的语言之一,TIOBE编程语排名Java排名第二,仅在C语言之后(两者位置时常轮换)。Java可以用来开发web应用和桌面应用,更重要的是Java具有跨平台性:write once, run everywhere。Java相对其他语言来说,更容易学习。如果你想成为一名Java程序员,根据个人经验,认为你至少应该对下面的这些内容非常熟练,才能在Java开发上游刃有余。原创 2016-02-25 11:51:47 · 1191 阅读 · 0 评论 -
Java程序员可能犯的3个常见SQL错误
你可能看到Java程序员每周的工作是编码开发一个可伸缩的Web应用程序,或创建一个动态的网站,或者开发高效的电子商务产品页面,也可能是开发一个Android应用程序等等。但是,即使他们致力于不同的项目,却往往都有一个共同点,那就是编程!他们的职业要求长时间的工作来积累更多的编程知识。Java程序员还需要了解项目的需求、设计和开发一个属于自己的原型项目。为了使自己始终跟随行业原创 2016-02-25 11:50:53 · 304 阅读 · 0 评论 -
Java不同压缩算法的性能比较
本文将会对常用的几个压缩算法的性能作一下比较。结果表明,某些算法在极端苛刻的CPU限制下仍能正常工作。文中进行比较的算有:●JDK GZIP ——这是一个压缩比高的慢速算法,压缩后的数据适合长期使用。JDK中的java.util.zip.GZIPInputStream / GZIPOutputStream便是这个算法的实现。●JDK de原创 2016-02-25 11:49:39 · 402 阅读 · 0 评论 -
Java修饰符关键词大全
我成为一个Java程序员距今已有一段时日。最近,有人问我关于Java修饰符关键字的一个问题,但我根本不知道那是什么。所以我觉得除了实际编程和算法,我也有必要学习这些内容。通过谷歌搜索,我只得到一些琐碎的要点,并不完整。所以我以此主题写了这篇文章。这也是一个可用于测试你的计算机科学知识的面试问题。Java修饰符是你添加到变量、类和方法以原创 2016-02-25 11:47:26 · 404 阅读 · 0 评论 -
Java编程提高性能时需注意的地方总结
最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源和总结一些在Java编程中尽可能做到的一些地方1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适原创 2016-02-25 11:43:58 · 359 阅读 · 0 评论 -
Java开发必会的Linux命令
作为一个Java开发人员,有些常用的Linux命令必须掌握。即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令。因为很多服务器上都是Linux系统。所以,要和服务器机器交互,就要通过shell命令。本文并不会对所有命令进行详细讲解,只给出常见用法和解释。具体用法可以使用--help查看帮助或者直接通过google搜索学习。原创 2016-02-24 22:19:58 · 328 阅读 · 0 评论 -
40个Java集合面试问题和答案
1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及原创 2016-02-24 22:18:23 · 399 阅读 · 0 评论 -
Java的最佳实践
Java 是在世界各地最流行的编程语言之一, 但是看起来没人喜欢使用它。而 Java 事实上还算是一门不错的语言,随着 Java 8 最近的问世,我决定编制一个库,实践和工具的清单,汇集 Java 的一些最佳实践。本文被放到了 Github 上。你可以随意地提交贡献,并加入自己的有关 Java 方面的建议和最佳实践。风格Jav原创 2016-02-24 22:15:37 · 1410 阅读 · 0 评论 -
Java反射机制分析指南
一、JAVA是动态语言吗?(http://www.9ymw.com/)一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言。但JAVA它却有着一个非常突出的动态相关机制:反射。通过反射,Java可以于运行时加载、探知和使用编译期间完全求和的类、生成其对象实体,调用其方法或者对属性设值原创 2016-02-24 22:13:50 · 240 阅读 · 0 评论 -
最全面的Java多线程用法解析
最全面的java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法。1.创建线程(http://www.9ymw.com/高质量代码下载)public Thread( );public Thread(Runnable target);publ原创 2016-02-24 22:12:38 · 334 阅读 · 0 评论 -
Java实现配置加载机制
现如今几乎大多数Java应用,例如我们耳熟能详的tomcat, struts2, netty…等等数都数不过来的软件,要满足通用性,都会提供配置文件供使用者定制功能。甚至有一些例如Netty这样的网络框架,几乎完全就是由配置驱动,这样的软件我们也通常称之为”微内核架构”的软件。你把它配置成什么,它就是什么。It is what you configure it to be.原创 2016-02-24 22:11:31 · 326 阅读 · 0 评论 -
Java程序员应该掌握哪些东西?
Java是热门的语言之一,TIOBE编程语排名Java排名第二,仅在C语言之后。Java可以用来开发web应用和桌面应用,更重要的是Java具有跨平台性:write once, run everywhere。Java相对其他语言来说,更容易学习。如果你想成为一名Java程序员,根据个人经验,认为你至少应该对下面的这些内容非常熟练,才能在Java开发上游刃有余。原创 2016-02-24 22:10:26 · 391 阅读 · 0 评论 -
Java新手问题集锦汇总
Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在。有超过30亿的设备是运行在Java之上的。根据Oracle的统计数据,光是使用中的Java Card就有有50亿。超过900万程序员选择使用Java进行开发,它是最受开发人员欢迎的语言,同时也是最流行的开发平台。原创 2016-02-24 22:08:32 · 458 阅读 · 0 评论 -
经典的Java基础面试题集锦汇总
问题:如果main方法被声明为private会怎样?(http://www.9ymw.com/高质量代码下载)答案:能正常编译,但运行的时候会提示”main方法不是public的”。问题:Java里的传引用和传值的区别是什么?答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。问题:如果要重写一个对象的equals方法,还要考虑什么?答案:h原创 2016-02-24 22:05:23 · 387 阅读 · 0 评论 -
8张图带你深入理解Java
有时候一张图往往胜过千言万语。下列的图是来自于Program Creek的Java教程,这是至今为止最受欢迎的文章。希望这些图能够帮助你复习已经学习到的知识。如果你通过这些图还无法将问题弄明白,那么你可能就要去阅读详细的文章来更进一步地学习Java1、字符串的不变性(http://www.9ymw.com/高质量代码下载)下图展示了如下的代码运行过程:原创 2016-02-24 21:27:15 · 529 阅读 · 0 评论 -
Java程序员使用的20几个大数据工具
最近我问了很多Java开发人员关于最近12个月内他们使用的是什么大数据工具。这是一个系列,主题为:(http://www.9ymw.com/高质量代码下载)语言 web框架 应用服务器 SQL数据访问工具 SQL数据库 大数据 构建工具 云提供商今天我们就要说说大数据。根据维基百科,大数据是数据集的一个广义的术语,并且该数据集是如此庞大和复杂,以致于传统的数据处理应用程序无原创 2016-02-24 21:20:06 · 509 阅读 · 0 评论 -
如何编写函数才能提高代码质量
函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的。写好一个函数是提高程序代码质量最关键的一步。本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高、易维护,易测试的函数。命名首先从命名说起,命名是提高可读性的第一步。如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难。下面我来说说如何原创 2016-02-25 11:55:06 · 361 阅读 · 0 评论 -
java 启动线程的两种方式
启动线程肯定要用start()方法。当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。当cpu分配给它时间时,才开始执行run()方法(如果有的话)。START()是方法,它调用RUN()方法.而RUN()方法是你必须重写的. run()方法中包含的是线程的主体。java启动线程原创 2016-02-25 11:57:07 · 1258 阅读 · 0 评论 -
Java面试宝典2015版(绝对值得收藏超长版)
Java面试宝典2015版(绝对值得收藏超长版)(一) 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的朋友在笔试时更好地赢得笔试和面试。由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以,大家原创 2016-02-26 10:55:46 · 831 阅读 · 0 评论 -
写出高质量代码的10个Tips
很长一段时间以来,我都在关注如何提高代码质量,也为此做过一些尝试,我想这个话题可能大家会比较感兴趣,在这里分享一下我关于如何提高代码质量的一些体会。 1. 打好基础 写出高质量代码,并不是搭建空中楼阁,需要有一定的基础,这里我重点强调与代码质量密切相关的几点:掌握好开发语言,比如做Android就必须对Java足够熟悉,《Effective Java》一书就是教授原创 2016-02-26 10:52:58 · 442 阅读 · 0 评论 -
深入解析java应用程序的一般架构
1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为WS。从字面上理解,它其实就是“基于 Web的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。如果说得再专业一点,WS 其实就是建立在HTTP 协议上实现异构原创 2016-02-26 10:51:27 · 570 阅读 · 0 评论 -
40个Java多线程问题总结
前言个人认为,学习内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,原创 2016-02-26 10:40:21 · 594 阅读 · 0 评论 -
Java程序员应当知道的10个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基原创 2016-02-26 10:38:40 · 473 阅读 · 0 评论 -
Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论。1. 日期取值在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date 类不便于实现原创 2016-02-26 10:37:51 · 468 阅读 · 0 评论 -
处理Java异常三原则(必备)
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:什么出了错?在哪出的错?为什么出错?在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么原创 2016-02-26 10:35:48 · 601 阅读 · 0 评论 -
Java数组操作的10大方法
Java数组操作的10大方法 下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow。0、定义一个Java数组String[] aArray = new String[5];String[] bArray = {"a","b","c", "d", "e"};String[] cArray = new String[原创 2016-02-25 12:08:30 · 327 阅读 · 0 评论 -
Java中的堆和栈的区别
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的作用,而且一个程原创 2016-02-25 12:07:46 · 484 阅读 · 1 评论 -
Java接口回调机制详解
一、前言最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。二、回调的含义和用途1、什么是回调?一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类同步调用、异步调用和回调。同步调用是一种阻塞式调用,即在函数A的函数体里通过书写函数B的函数名来调用之,使内存中对应函数B的代码原创 2016-02-25 12:06:33 · 671 阅读 · 0 评论 -
你真的知道Java中boolean类型占用多少个字节吗?
为什么要问这个问题,首先在Java中定义的八种基本数据类型中,除了其它七种类型都有明确的内存占用字节数外,就boolean类型没有给出具体的占用字节数,因为对虚拟机来说根本就不存在 boolean 这个类型,boolean类型在编译后会使用其他数据类型来表示,那boolean类型究竟占用多少个字节?带着疑问,随便网上一搜,答案五花八门,基本有以下几种:1、1个bit理由原创 2016-02-25 12:04:58 · 937 阅读 · 0 评论 -
Java开发者值得关注的7款工具
工欲善其事必先利其器。对于开发者来说,合理、灵活地使用开发工具可以极大的提高工作效率。本文总结了7款较新的Java工具。云计算、大数据地快速发展催生了不少热门的应用及工具。作为老牌语言Java,其生态圈也出来了一些有关云服务、监控、文档分享方面的工具。本文总结了7款较新的Java工具,大家不妨看下。1.JClarity——性能监控JCla原创 2016-02-25 12:03:38 · 432 阅读 · 0 评论 -
Java程序员最常用的8个Java日志框架
作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用、WEB应用以及移动应用。然而日志系统是一个成熟Java应用所必不可少的,在开发和调试阶段,日志可以帮助我们更好更快地定位bug;在运行维护阶段,日志系统又可以帮我们记录大部分的异常信息,从而帮助我们更好的完善系统。本文要来分享一些Java程序员最常用的Java日志框架组件。1、Log4j – 最受欢迎的Jav原创 2016-02-25 12:02:30 · 367 阅读 · 0 评论 -
11 款用于优化、分析源代码的Java工具
本文将提供一些工具,帮助你优化代码以及检查源代码中的潜在问题。 1. PMDfrom http://pmd.sourceforge.net/ PMD能够扫描Java 源代码,查找类似以下的潜在问题:可能的bug——try/catch/finally/switch语句中返回空值。死代码——未使用的局部变量、参数、私有方法。不理想的代码—原创 2016-02-25 12:01:07 · 411 阅读 · 0 评论 -
Java 8无人谈及的八大功能
Java 8无人谈及的八大功能 时间戳锁一直以来,多线程代码是服务器开发人员的毒药(问问Oracle的Java语言架构师和并行开发大师Brian Goetz)。Java的核心库不断加入各种复杂的用法来减少访问共享资源时的线程等待时间。其中之一就是经典的读写锁(ReadWriteLock),它让你把代码分成两部分:需要互斥的写操作和不需要互斥的读操作。原创 2016-02-25 12:00:44 · 537 阅读 · 0 评论 -
Java程序员们最常犯的10个错误
Java程序员们最常犯的10个错误 1.将数组转化为列表将数组转化为一个列表时,程序员们经常这样做:List list = Arrays.asList(arr);Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arr原创 2016-02-25 11:58:37 · 402 阅读 · 0 评论 -
Java语言设计人员笔记: 首先不要造成伤害
简介: 尽管一些建议的语言功能可以解决遇到的某个问题,但其中大部分功能的存在都有现实环境中的根源,在这些环境中,现有功能无法使程序员轻松、清晰、简洁或安全地表达他们想要的概念。尽管头脑中有一个用例,“此功能使我能够编写我希望能够编写的代码”,但语言设计师还需要评估语言功能可能带来的糟糕代码。关于本系列每个 Java™ 开发人员可能都有一些关于如何改进 Java 语言的想法。在本系列原创 2016-02-24 21:18:23 · 424 阅读 · 0 评论 -
Java编码易疏忽的十个问题
在Java编码中,我们容易犯一些错误,也容易疏忽一些问题,因此笔者对日常编码中曾遇到的一些经典情形归纳整理成文,以共同探讨。0. 纠结的同名现象很多类的命名相同(例如:常见于异常、常量、日志等类),导致在import时,有时候张冠李戴,这种错误有时候很隐蔽。因为往往同名的类功能也类似,所以IDE不会提示warn。解决写完代码时,扫视下import部分,看看有原创 2016-02-24 21:17:29 · 362 阅读 · 0 评论 -
贝叶斯算法 mapreduce实现
/** * 找到抽样用户的特征,得到每个特征的概率 * 输入:属性1 属性2 属性3 属性4 类别 * 命令:hadoop jar recommend_cf.jar com.funshion.machine.bayes.Bayes2 /dw/logs/user/xincl/bayes.txt /dw/logs/recommend/result/machine/Baye原创 2015-08-28 21:32:17 · 1000 阅读 · 1 评论 -
J2EE基础:Struts框架的初学者入门知识
1.如何安装Struts:首先下载Struts,建议使用release版,现在最高版本为1.2.6,有多种OS版本(windows,linus...),下载后解压开来,可以看到这个目录:lib和webapps,webapps下有一些WAR文件。假设你的Tomcat装在c:\Tomcat下,则将那些WAR文件拷贝到C:\Tomcat\webapps,重新启动Tomcat即可。打开浏览器,在地址栏原创 2015-08-28 20:26:05 · 345 阅读 · 0 评论 -
JVM最多支持多少个线程?
McGovernTheory在StackOverflow提了这样一个问题:Java虚拟机最多支持多少个线程?跟虚拟机开发商有关么?跟操作系统呢?还有其他的因素吗?Eddie的回答:这取决于你使用的CPU,操作系统,其他进程正在做的事情,你使用的Java的版本,还有其他的因素。我曾经见过一台Windows服务器在宕机之前有超过6500个线程转载 2015-08-28 22:28:24 · 426 阅读 · 0 评论