- 博客(166)
- 收藏
- 关注
原创 8个实用的JavaScript小技巧
一、使用!!操作符转换布尔值有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值。为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单。对于变量可以使用!!variable做检测,只要变量的值为:0、null、" "、undefined或者NaN都将返回的是false,反之返回的是true。二、使用+将字符串转换成数字这个技巧非常有用,其非常...
2019-10-31 16:45:51 394
原创 Java类成员访问级别
类可以是public或default(或包级别)。在本教程中主要介绍 public,private,protected 这几个访问级别修辞符的使用。类成员的访问级别确定程序的哪个区域可以访问它。 以下四个访问级别修饰符之一可以用于类成员:公开(public)私有(private)保护(protected)默认或包级别访问前三种类型的访问级别使用以下三个关键字之一来指定:public,p...
2019-10-31 16:41:47 419
原创 Java源文件声明规则
当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。一个源文件中只能有一个public类一个源文件可以有多个非public类源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。如果一个类定义在某个包中,那么package语句应该在源文件的首行。如果...
2019-10-30 17:25:14 331
原创 RTTI的限制?如何突破? — 反射机制
如果不知道某个对象的确切类型,RTTI可以告诉你,但是有一个限制:这个类型在编译时必须已知,这样才能使用RTTI识别它,也就是在编译时,编译器必须知道所有要通过RTTI来处理的类。可以突破这个限制吗?是的,突破它的就是反射机制。Class类与java.lang.reflect类库一起对反射的概念进行了支持,该类库包含了Field、Method以及Constructor类(每个类都实现了Memb...
2019-10-30 17:21:43 244
原创 服务器缓存策略简介一二
我们提到服务器端性能问题的时候,往往会混淆不清。因为当我们访问一个服务器时,出现服务卡住的时候,就会认为是“性能问题”。但是实际上这个性能问题可能是有不同的原因,表现出来都是针对客户请求的延迟很长甚至中断。我们先来看看这些原因有哪些:第一个是所谓并发数不足,也就是同时请求的客户过多,导致超过容纳能力的客户被拒绝服务,这种情况往往会因为服务器内存耗尽而导致的;第二个是处理延迟过长,也就是有一些客户...
2019-10-30 17:08:46 311
原创 Redis设计思路总结
本文从网络模型、数据结构和内存管理、持久化和多机协作四个角度对redis的设计思路进行分析。一.网络模型Redis是典型的基于Reactor的事件驱动模型,单进程单线程,高效的框架总是类似的。网络模型与spp的异步模型几乎一致。Redis流程上整体分为接受请求处理器、响应处理器和应答处理器三个同步模块,每一个请求都是要经历这三个部分。Redis集成了libevent/epoll/kqueu...
2019-10-29 16:43:49 197
原创 我们为什么要关注 JavaScript ?
本文主要介绍我们之所以要关注JavaScript的原因。首先,我认为JavaScript能够得到普及的主要原因之一是,JavaScript非常易于接近。学习JavaScript,对于初学者而言,相对比较容易,对于高级用户而言,又非常强大,可以用它来构建复杂又可靠的系统。其次,之所以要关注JavaScript是因为现今的JavaScript已经无处不在。你可以使用JavaScript在几乎所有...
2019-10-29 16:36:12 151
原创 Java和C++都有哪些区别呢?
Java和C++都有哪些区别呢?可能刚刚萌芽对软件开发有兴趣的朋友,就会问Java好还是C++好,学那个好?俩种语言有什么区别?为什么学的人那么多?今天我们就来看看Java和C++的区别都有哪些?1.指针 JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟...
2019-10-29 15:30:55 329
原创 为什么学习开源可以提高程序员的编程技能?
一、阅读代码能让你变得更优秀在编程生涯的早期就明白阅读的代码越多,代码就能变得更好。当我不得不维护其他人的代码时,简单和干净的代码几乎总是比花哨或复杂的代码好—— 即使有注释。然而另一方面,当我花足够的时间去理解复杂代码的时候,我常常能够学到新的技巧。不论怎么样,都能让我有所提高。这使得我在那些没有代码审查的地方一再争取。而当没有足够的时间来正式执行“代码审查”的时候,我会自己浏览存储库和阅读...
2019-10-29 15:11:03 240
原创 Java不可变对象
在创建状态后无法更改其状态的对象称为不可变对象。一个对象不可变的类称为不可变类。不变的对象可以由程序的不同区域共享而不用担心其状态改变。不可变对象本质上是线程安全的。示例以下代码创建了不可变类的示例。public class IntWrapper {private final int value;public IntWrapper(int value) { this....
2019-10-28 15:31:45 188
原创 Web开发者需要学习的语言工具
本文概括了一系列软件开发工作者应该学习的编程语言/工具,以便于同学们理解现代快速更新变化的web开发知识。一、JavaScript这是唯一一种所有浏览器都理解的编程语言,并且它是前端开发的支柱。JavaScript也被称为ECMAScript,ES 5。在深入其他语言之前好好理解这门编程语言非常重要。二、ES6这是Javascript语言的扩展,而且许多浏览器正在实现ES6。好处是哪怕是现...
2019-10-28 15:24:37 298
原创 你不容错过的12个Java项目
GitHub可谓是一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自有代码或者学习编程技能。因此在开发工作当中我们几乎不可能绕得开GitHub。下面,本文将同大家分享一些有趣且颇为实用的Java库。1.极致精简的JavaBootique是一项用于构建无容器可运行Java应用的极简技术。该项目允许大家创建REST服务、Web应用、任务、数据库迁移等等,且一切都立足于模块实现。另...
2019-10-28 14:55:59 426
原创 面试题求解:用java列举某个文件夹下所有的文件或者目录编程题
有人问及一个用java列举某个文件夹下所有的文件或者目录编程题。结果他不加思索的写了十几行代码,就搞定了,结果面试官说等通知,直到最后都没通知他,我猜想出题人的最终想法是看如何封装代码,如何灵活使用丰富的API。于是我试着写一个可选择结果,希望对各位有用:import java.io.File;import java.io.FileFilter;/**如何列出某个目录下的所有文件/目...
2019-10-28 14:49:56 322
原创 日常打饭释义单线程与多线程
程序设计的目标单从程序的角度在我看来,一个好的程序的目标应该是性能与用户体验的平衡。在本文中我们仅仅讨论程序本身。围绕两点来展开,性能与用户体验。性能:高性能的程序应该可以等同于CPU的利用率,CPU的利用率越高(一直在工作,没有闲下来的时候),程序的性能越高。体验:这里的体验不只是界面多么漂亮,功能多么顺手,这里的体验指程序的响应速度,响应速度越快,用户体验越好。下面我们就这两点进行...
2019-10-25 17:03:58 243
原创 Java数字的格式化
1、API层次结构:java.text.Formatjava.text.DateFormatjava.text.SimpleDateFormatjava.text.MessageFormatjava.text.NumberFormatjava.text.ChoiceFormatjava.text.DecimalFormat主要用到粗体显示的类。2、例子import java.t...
2019-10-25 16:58:48 171
原创 CSS开发中的十大错误用法
自从接触前端软件开发以来,我发现开发猿一直在努力征服着CSS。理由也很充分,开发人员是用逻辑思考的生物。添加一个DIV元素导致所有代码都不得不往下移一行,而另一个DIV“浮”到左侧,感觉没有任何意义。你也一定听到过开发人员的抱怨:“我们只需要向左边移动五个像素,但是…天哪!为什么整个都向下移动了一行。到底是哪里错了?!?!?!”所以,这篇文章就和大家来聊一聊CSS中的十大错误的做法。1...
2019-10-25 16:54:19 190
原创 Java关键字有哪些?
Abstract 抽象的一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现break一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行caseJava语言的关键字,用来定义一组分支选择,如果某个值和s...
2019-10-25 16:51:55 394
原创 成为聪明程序员必知的5个技能
软件开发人员在项目架构的设计上起着非常关键的作用。当前的现代化架构世界需要聪明,有创新的开发人员,这些开发人员装备了各种务实的技能,并对知识了然于心。 那么什么样才算是一个聪明的开发者呢?有这样5个关键的领域:1.集中注意力和以目标为导向开始反思和规划你的职业生涯。对你的代码,你应该:保持模块化——个性化,专业化——这两个方面都需要好好考虑,并且你的待办事项需要定期整理。保持清洁并遵...
2019-10-25 16:49:07 320
原创 Java除法运算的陷阱
除法运算谁不会啊,很多人不屑一顾,真是无知者无畏!其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更安全。数学除法规定,0不能做除数,因为会得到一个无穷大数据。西面看看Java中如何处理这些特殊情况:1、整数的除法:0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数...
2019-10-24 17:02:51 289
原创 JAVA内存泄漏和内存溢出的区别
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致o...
2019-10-24 17:00:08 352
原创 你在编程的时候浪费了多少时间?
无论你是程序员或是其他行业的工作人员,时间是你最宝贵的资源之一。不过,开发人员常常发现自己被困在项目中,因为不注重管理他们的时间。这篇文章提供了可提高工作效率的可操作技巧,以及如何避免不必要的浪费时间。1.你有优先安排任务吗?就像那些对自己的时间表有控制的人一样,开发人员常常从简单任务开始一天的工作。他们明确地从更容易的任务开始新的一天,并且会把那些目的不明确,艰巨的任务放到一天结束的时...
2019-10-24 16:57:15 117
原创 C/C++堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)— 全局变量和静...
2019-10-23 17:36:27 140
原创 5个非常nice的命令行工具
1.Z a、一次安装b、甚至忘记了它c、得益于它的生产力:Z。Z可以让你快速从文件夹跳转到文件夹,而无需费心编写完整的绝对或相对路径。为了实现这一目标,它记录了所有你访问的文件夹,然后基于上次使用的频率和时间将它们排名。因此,所有你需要做的是键入 z part/of/path然后敲回车。通过这种方式,Z就会自动引导你到排名最高的匹配。要安装Z,可以下载 z.sh,然后在/.zshrc或...
2019-10-23 17:22:04 120
原创 数据库规范化设计的五大要求
通常情况下,有两个方面的标准来判断数据库是否设计的比较规范:一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个基本条件,则说明这个数据库的规范化水平还是比较高的。当然这两个指标只是最基础的判定条件。为了让数据库更加的规范,需要符合以下五点要求。要求一:表中应该避免可为空的列。虽然表中允许空列,但是,空字段是一种比较特殊的数据类型。数据库处理时需要进行特殊的处理。如此的话,就...
2019-10-23 17:13:03 1600
原创 Java虚拟机即时编译器技术JIT
Java虚拟机中有许多附加技术用以提升速度,尤其是与加载器操作相关的,被称为“即时”(Just-In-Time,JIT)编译器的技术。这种技术可以把程序全部或部分翻译成本地机器码(这本来是JVM的工作),程序运行速度因此得以提升。当需要装载某个类时,编译器会先找到其.class文件,然后将该类的字节码装入内存。此时,有两种方案可供选择:(1)一种就是让即时编译器编译所有代码。但这种做法有两个缺陷...
2019-10-23 17:04:30 173
原创 java架构有哪些
软件架构作为一个概念,体现在技术和业务两个方面。从技术角度来说:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。先说一些基本原则:分层原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。接口实现分离原则随着软件模块化的不断深入改进,...
2019-10-23 17:00:24 383 1
原创 程序员不同阶段的使命感
我们现在工作的软件开发行业很奇怪。明明每年都有新的从业人员涌入人才市场,但企业依旧诉苦自己迫切需要大量的开发。这种问题已经存在已久。 软件开发者这个行业非常年轻,也面临着很严重的人才短缺问题。大部分的软件开发项目无疾而终的原因是后期开支过于庞大。 那些行业里的大佬是怎么建议我们的,他们说「世界上永远存在解决问题的办法,但我们还是会遇到各种难题。因为除非我们真正去尝试解决,否则永远不知道哪种...
2019-10-22 17:09:16 155
原创 程序员写博客的好处有哪些
借口:我不太会写文章,不太会表达,没有东西好写,没人会看我的文章你想让自己表达能力变好吗?如果答案是「Yes」,那你觉得没有练习,表达能力就会变好吗?「从脑袋里面接收到资讯,思考,做出反应外显出来,达到效果」这个过程是需要大量练习才能缩短反应时间并精准地达到效果。我想大家都同意,这是个资讯爆炸的时代,每一天都涌出正常人根本负荷不了的庞大且杂乱的资讯量。怎么从这些爆炸多的资讯中,将你有兴趣的东...
2019-10-22 17:05:34 610
原创 如何在没有实际项目经验的情况下找到工作
当你刚毕业的时候,你很容易认为自己知道超级多的有关软件开发的知识,并且能够顺利地找到一份工作。你可能在学校的成绩很高,做了一个了不起的毕业设计,并且研究了最流行的技术和 JavaScript 库。然而,除非你在十几岁的时候就展现出了超凡的编程能力,并且已经与一些雇主建立了联系或者有在某公司的实习经历。否则你在找第一份工作的时候都是要花费一些时间和精力的。为什么找第一份工作这么难?工作中的 W...
2019-10-22 17:02:54 384
原创 Java常量池基本概念
1、什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。2、Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着是用于存放常量的常...
2019-10-22 16:59:53 157
原创 程序员技术发展瓶颈的突破
技术人员在某一领域工作3-5年后,会成为团队内或者公司里的核心技术骨干,这个时候他们也会面临几个问题:技术学习的困惑:当达到一个瓶颈时,可以学习的参考系越来越少,首先是因为高端技术人才呈现倒金字塔形态,身边缺少能引领你的人生导师;其次,业内的技术交流,大多数在做科普以及刷存在感,到达一定阶段后对个人提升作用越来越小(甚至用一天时间参加技术大会效果还不如用一天的时间在咖啡馆看书学习);再次,国内...
2019-10-21 16:16:38 282
原创 Java并发编程性能详解
一、介绍本文重点讨论多线程应用程序的性能问题。如用何种技术方法来减少锁竞争,以及如何用代码来实现。二、性能我们都知道,多线程可以提高线程的性能。性能提升的根本原因在于我们有多核的CPU或多个CPU。每个CPU的内核都可以自己完成任务,因此把一个大的任务分解成一系列的可彼此独立运行的小任务就可以提高程序的整体性能了。可以举个例子,比如有个程序用来将硬盘上某个文件夹下的所有图片的尺寸进行修改,应...
2019-10-21 16:12:59 130
原创 程序员怎样看待比自己强的人
这个时代对于学 IT 的人来说是幸运的。一个普通的程序员可以相对轻易地找到工作,可以轻易拿到比其他行业高得多的工资,甚至自己创建世界级的企业亦非空想。马云、马化腾等企业家的成功,似乎时刻提醒人们:即便是草莽出身的人,也能通过努力令世界瞩目。马云自己也说过:“如果我能成功,那么中国 80% 的人都能成功”。美国有科学研究表明,95% 的男人认为自己比其他人聪明。更何况中国人从小就耳濡目染“王侯将相...
2019-10-21 16:10:04 174
原创 成为优秀程序员的10条黄金法则
1.不要重复这是一条非常值得遵循的伟大原则。我很习惯于回过头去检查自己写下的代码,重构那些被多次使用的部分。虽然在将一个长方法分解为若干个短方法时,会遇到一些困难。Ctrl + R + M在Visual Studio中非常有用,可以帮助你重构代码为单独的方法。这使得代码更加可重用和可测试。2.命名变量的要点为说明它们是什么,而非它们是什么样的数据类型唯一的例外是,如果你正在处理别人的代码,...
2019-10-21 16:06:31 80
原创 java中如何将字符串数组转换成字符串
如果是 “字符串数组” 转 “字符串”,只能通过循环,没有其它方法String[] str = {“abc”, “bcd”, “def”};StringBuffer sb = new StringBuffer();for(int i = 0; i < str.length; i++){sb. append(str[i]);}String s = sb.toString();如果...
2019-10-19 15:37:07 1008
原创 Java程序员容易犯的错误
Array 转 ArrayList一般开发者喜欢用:List list = Arrays.asList(arr);Arrays.asList() 会返回一个ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类java.util.Arrays.ArrayList 有set(), get(), contains()方法,但并支持添加元素...
2019-10-19 15:34:44 188
原创 java之类的初始化过程
public class Hello{static {System.out.println(“静态块”);}{System.out.println(“实例块”);}public Hello(){System.out.println(“构造方法”);}public static void main(String []args){} }运行后是这样的:静态块在main...
2019-10-19 15:31:53 80
原创 趣说HTML
如果有非技术人员问你,HTML5是什么,你会怎么回答?新的HTML规范?给浏览器提供了牛逼能力,干以前不能干的事?(确切地说应该是给浏览器规定了许多新的接口标准,要求浏览器实现牛逼的功能。。)给浏览器暴露了许多新的接口?加了很多新的效果?问的人其实并不明白他想问的真正问题,回答的人貌似明白,但又好像少了点什么。牛逼的能力、新的接口、炫酷的效果,首先回答的人自己就是晕晕乎乎。什么是HTML...
2019-10-19 15:28:19 88
原创 JDBC获取数据库各种信息
当通过一个JDBC连接上一个数据的时候,我们就可以通过JDBC获取到这个数据的各种信息,比如数据库的名称、模式、表结构(及其字段)、视图、函数、过程、访问权限等等一系列的信息。当然,如果你原意,你还可以访问个个表中的数据(只要你有权限)。笔者曾接触Sybase数据库,Sybase很垃圾,搞了老半天,连个表都看不见,更无从谈及访问数据,无奈之下通过JDBC连接上数据库后,将数据的各种信息一一输出。...
2019-10-18 17:25:06 604
原创 软件开发人员的微薄安全感
软件开发是一个行业,当厨师的也是一个行业,一个厨师干了10多年后,会不会变成国家主席?但还是厨师,甚至有有可能一辈子都是厨师,软件开发人员也是一个行业而已,我们也照样都会有迷茫的时候。年轻时:01:年轻时,目标很简单,就是学技术,当时学Java前后耗费了1-2年,接着学C#,SQLServer,那时候有目标就不迷茫,就是一个字想学习知识。02:年轻时,欲望比较少,一个月能赚3000元的工资就...
2019-10-18 17:22:11 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人