恕我直言,在座的各位根本不会写 Java! java思维导图 作者:Lrwin,软件架构师. 导语 自 2013 年毕业后,今年已经是我工作的第 4 个年头了,总在做 Java 相关的工作,终于有时间坐下来,写一篇关于 Java 写法的一篇文章,来探讨一下如果你真的是一个 Java 程序员,那你真的会写 Java 吗? 笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获. 文章核心 其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为…
导语 自 2013 年毕业后,今年已经是我工作的第 4 个年头了,总在做 Java 相关的工作,终于有时间坐下来,写一篇关于 Java 写法的一篇文章,来探讨一下如果你真的是一个 Java 程序员,那你真的会写 Java 吗? 笔者是一个务实的程序员,故本文绝非扯淡文章,文中内容都是干货,望读者看后,能有所收获. 文章核心 其实,本不想把标题写的那么恐怖,只是发现很多人干了几年 Java 以后,都自认为是一个不错的 Java 程序员了,可以拿着上万的工资都处宣扬自己了,写这篇文章的目的并不是嘲讽…
CPU,一般认为写C/C++的才需要了解,写高级语言的(Java/C#/pathon...)并不需要了解那么底层的东西.我一开始也是这么想的,但直到碰到LMAX的Disruptor,以及马丁的博文,才发现写Java的,更加不能忽视CPU.经过一段时间的阅读,希望总结一下自己的阅读后的感悟.本文主要谈谈CPU缓存对Java编程的影响,不涉及具体CPU缓存的机制和实现. 现代CPU的缓存结构一般分三层,L1,L2和L3.如下图所示: 级别越小的缓存,越接近CPU, 意味着速度越快且容量越少. L1是…
内容提要 <架构探险--从零开始写Java Web框架>首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA.Maven.Git 等开发工具搭建 Java Web 应用:接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该 Web 应用,完善相关细节,并对已有代码进行优化:然后基于传统 Servlet 框架搭建一款轻量级 Java Web 框架,一切都是从零开始,逐个实现类加载器.Bean 容器.IoC 框架.MVC 框架,所…
经常使用MyEclipse要么Eclipse编辑写java程序猿代码.您可能经常会遇到一个黄色警戒线:dead code:一般程序猿遇到这些问题都会置之不理,反正也不影响程序的编译运行.对,这不是bug,仅仅是一个提示,对于一个有强迫症的程序猿来说,他非要代码一点问题都没有,包含黄线警告都要消灭掉,这里简单说下dead code 即死代码.无作用的代码提示的原因和解决方法. 顾名思义,死代码.即你编写的那一行是无效代码,可有可无,说白了就是一行废话:这是你就要看一下这一行的处理逻辑是什么,可能是…
之前已经完毕了大整数的表示.绝对值的比較大小.取负值.加减法运算以及乘法运算. 详细见前两篇博客(自己动手写Java * ). 这里加入除法运算. 另外看到作者Pauls Gedanken在blog(http://paul-ebermann.tumblr.com/post/6312290327/big-numbers-selfmade-part-2-14-conversion-from)中的转换十进制数到大整数的方法,这里一并列出. 除法 除法使用经典的除法法则,可是有几个须要注意的问题,以下列…
前言 我曾经是一名 .Net 开发,如今的我是一名 Java 开发者.在我享受着 Java 成熟的生态时,我常常怀念 c# 简洁的语法:自动属性.类型推断.自动初始化器 .... 鱼,我所欲也,熊掌亦我所欲也; 二者不可得兼; 直到我遇到了 lombok . 添加依赖及 IDE 插件 maven 添加依赖: <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven&l…
查看手写JAVA虚拟机系列可以进我的博客园主页查看. 我们知道,我们编译.java并运行.class文件时,需要一些java命令,如最简单的helloworld程序. 这里的程序最好不要加包名,因为加了包名的话编译和运行需要有所改动. 看这里的命令.javac为编译命令,我们知道java的特点是一次编译,到处运行.这里的编译指的就是javac,对于java程序即.java文件,先要用javac编译成字节码.然后将字节码(.class文件)放到java虚拟机中运行,即上图中的java HelloW…
查看手写JAVA虚拟机系列可以进我的博客园主页查看. 前面我们介绍了准备工作以及命令行的编写.既然我们的任务实现命令行中的java命令,同时我们知道java命令是将class文件(字节码)转换成机器码,那么我们现在的任务就是读出这个class文件里面的内容. 正文: java虚拟机规范中是没有规定虚拟机该从哪里找类,也就是找class文件的,而oracle的是根据类路径,也就是classpath来搜索类的.搜索的优先级:启动类路径(bootstrap classpath)>扩展类路径(exten…
1.java是强制写class关键字的语言,不能有独立的函数游离在类外出现在文件中,这和python c++ 都不同,后面的都可以单独在类外写函数,所以java被称为是纯面向对象的语言,py和c++都不是强制向对象的写法. 2.尽管如此,有的笨瓜,还是打死也写不出类来,而且强烈的反对写类,认为面向过程已经能搞定一切了,发明c++这种语言的人就是闲的没事,c++对于c来说是完全的多余没必要. 但是当被公司要求写java时候,就会蒙蔽,觉得没有面向对象经验,很难转变,此篇演示完全的面向过程的思维来写…