Learning Path
浏览 开发笔记 相关教程与章节。
社区笔记、经验文章、测验题库与零散教程入口。
教程
1237
见过一个现象,堪称无法调和的矛盾。 多年前。 某个互联网小公司,整了一个挺有前景的电商网站,于是老板构建了一个团队,团队组成人员大致有以下几个部分: 1、一个技术负责人,外加三个代码手。 2、运营人员两名。 3、编辑两名。 4、领导一“只“。 这个团队共同完成开发、调试、内容编辑、宣传、包装等工作,大家七荤八素的搞了两个月后,网站终于开发完成。 在上线前,团队中的技术小组基本占据了主导地位,根据前期大家各自意淫的需求,大家都在不折不扣的..
首先我们看原文(原文来自csdn论坛某贴): 找了个程序员做老公,所以认识了很多程序员。以前就没对程序员有过不好的看法,现在则更不会。发现csdn上老有悲观的论调,说程序员找不到老婆。今天我就以一个程序员妻子的身份,来写写找程序员做老公的好处。希望能给各位mm有借鉴,找程序gg做男朋友。 一、找程序员不用担心外遇。程序员是对着电脑工作,周围同事大部分是男生。他的生活中基本接触不到mm,所以不会有办公室恋情的发生,也就不会有外遇问题发..
当我成为一名 IT 男后,在父母眼中我就像黑客帝国的主角一样了不起,在亲戚眼中我是在写字楼坐办公室吹空调的人,在朋友眼中我就是一个修电脑的,在同行眼里我就是一个泡网吧的,在女友眼中我是一个从保安华丽转身为工程师的段小磊,我理想中的样子应该是和乔布斯、比尔盖茨那样的人,但我实际上是一个宅在家里抽烟吃零食加班到凌晨三点的人。 别人眼中自己的职业形象总是光鲜靓丽,但实际的工作状态却有许多烦恼,随着程序员版、工程师版、设计师版、..
对于面向对象编程来说,抽象是它的一大特征之一。在 Java 中,可以通过两种形式来体现 OOP 的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。 一、抽象类 在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: abstract void..
写这篇文章是因为在知乎上看到有人问这个问题,在想怎么会有这种 SB 问题,不过想想当初SB的我貌似也搞不清两者的关系,认知还是需要一个过程。 然后看到比较经典的回答有:Java 和 Javascript 的关系就像雷锋和雷峰塔的关系,也像老婆和老婆饼的关系。 一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 'Java�..
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 网上很多关于 Java Annotation 的文章,看得人眼..
捕获组分为: 普通捕获组(Expression) 命名捕获组(?Expression) 普通捕获组 从正则表达式左侧开始,每出现一个左括号“(”记做一个分组,分组编号从 1 开始。0 代表整个表达式。 对于时间字符串:2017-04-25,表达式如下 (\\d{4})-((\\d{2})-(\\d{2})) 有 4 个左括号,所以有 4 个分组: 编号 捕获组 匹配 0 (\d{4})-((\d..
对于大部分人来说,第一次见到 class.forName(String className) 这句代码应该是在使用 JDBC 方式连接数据库的时候。 实例 [mycode3 type='java'] import com.mysql.jdbc.Driver; import java.sql.*; public class JdbcDemo { public static void main(St..
在尽可能短的篇幅里,将所有集合与并发集合的特征,实现方式,性能捋一遍。适合所有”精通Java”其实还不那么自信的人阅读。 ListArrayList以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。按数组下标访问元素–get(i)/set(i,e) 的性能很高,这是数组的基本..
Java 源程序的编译大家都知道,也就是 cmd 中到源文件所在目录下 javac **.java 即可,当程序中有包声明还能简简单单的直接 javac **.java 吗?答案当然是 no,下面举个简单的例子证明一下直接 javac **.java 会怎么样。 如下:F:\javaweb2班\20160531目录下有A.java 文件,注意源文件中有包声明: 实例 [mycode3 type='java'..
组合模式,就是在一个对象中包含其他对象,这些被包含的对象可能是终点对象(不再包含别的对象),也有可能是非终点对象(其内部还包含其他对象,或叫组对象),我们将对象称为节点,即一个根节点包含许多子节点,这些子节点有的不再包含子节点,而有的仍然包含子节点,以此类推。很明显,这是树形结构,终结点叫叶子节点,非终节点(组节点)叫树枝节点,第一个节点叫根节点。同时也类似于文件目录的结构形式:文件可称之为终节点,目录可称之为非终节点(组节点)。 普..
String String:字符串常量,字符串长度不可变。Java 中 String 是 immutable(不可变)的。 String 类的包含如下定义: /** The value is used for character storage. */ private final char value[]; /** The offset is the first index of the storage that is used...
简单的java加密算法有: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm,安全散列算法) HMAC(Hash Message Authentication Code,散列消息鉴别码) 1. BASE64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~..
目录 什么是继承? 继承有什么好处? 继承的特点 使用继承时的注意事项 super和this有什么区别? 方法的重写(覆盖) final关键字 多态 抽象(abstract) 内部类 不同修饰符修饰的内容(和内部类无关) 四种权限修饰符 什么是继承? 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 多个类可以称为子类,单独这个类称为父类、超..
一、快速失败(fail—fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加、删除、修改),则会抛出 Concurrent Modification Exception。 原理:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变 modCount 的值。每当迭代器使用 hashNext()/next() 遍历下一个元素之..
一个类及其对象初始化的过程 一、什么时候需要初始化一个类 首次创建某个对象时: Dog dog = new Dog(); 首次访问某个类的静态方法或者静态字段时: Dog.staticFields; Java 解释器就会去找类的路径,定位已经编译好的 Dog.class 文件。 二、获得类的资源 然后 jvm 就会载入 Dog.class,生成一个 class 对象。这个时候如果有静态的方法或者变量,静态初始化动作都会被执行。这个..
一.内部类基础 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Circle { double radius = 0; public Ci..
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类。 如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)。 显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类。 而心脏又在人体当中,正如同是内部类在外部内当中。 实例1:内部类的基本结构 //外部类 class Out { private int age = 12; ..
一、接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的类 。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 1.2 接口的格式&使用 1.2.1 接口的格式 与定义类的 class 不同,接口定义时需要使用 interface 关键字。 定义接口所在的仍为 .java 文件,虽然声..
本章节我们将为大家介绍如何在 Java 语言中使用 JSON。 类库选择 Java中并没有内置JSON的解析,因此使用JSON需要借助第三方类库。 下面是几个常用的 JSON 解析类库: Gson: 谷歌开发的 JSON 库,功能十分全面。FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。Jackson: 社区十分活跃且更新速度很快。 以下教程基于 FastJson 讲解。 环境配置 在 Maven 构建的项目中,..
出处:深入理解jvm之内存区域与内存溢出..
floor 返回不大于的最大整数。 round 则是 4 舍 5 入的计算,入的时候是到大于它的整数。 round 表示“四舍五入”,算法为Math.floor(x+0.5) ,即将原来的数字加上 0.5 后再向下取整,所以 Math.round(11.5) 的结果为 12,Math.round(-11.5) 的结果为 -11。 我们先通过以下实例来看看 Java Math floor、ceil、rint 及 round 各个方法..
多态一般分为两种:重写式多态和重载式多态。 重载式多态,也叫编译时多态。也就是说这种多态再编译时已经确定好了。重载大家都知道,方法名相同而参数列表不同的一组方法就是重载。在调用这种重载的方法时,通过传入不同的参数最后得到不同的结果。 但是这里是有歧义的,有的人觉得不应该把重载也算作多态。因为很多人对多态的理解是:程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,这种情况..
首先,确定我们的输出结果是: 那么我们怎么才能做到这样呢? 1、首先分析图形的结构 我们可以看到,图形共5行,那么,我们是否可以建立一个for循环语句,使其控制在5行?答案是肯定的。 for(int i = 1 ;i 我们可以把图形拆分为这样三个三角形。 3、建立1号空白三角形 可以看,第一行是输出4个空格,第二行输出3个空格,第三行输出2个,第四行输出1个,第五行没有 从这个规律可以看出,是依次递减的规律,那么如何实现呢? 我..