- 博客(59)
- 收藏
- 关注
原创 JavaScript 常量定义详解
相信同学们在看见这个标题的时候就一脸懵逼了,什么?JS能常量定义?别逗我好吗?确切的说,JS当中确实没有常量(ES6中好像有了常量定义的关键字),但是深入一下我们可以发现JS很多不为人知的性质,好好利用这些性质,就会发现一个不一样的JS世界。首先,在JS当中,对象的属性其实还含有自己的隐含性质,比如下面对象:var obj = {}; obj.a = 1; obj.b = 2; 在这里我们定...
2017-01-07 15:35:07
538
原创 Java IO
Java中的IO主要源自与网络和本地文件.IO的方式通常分为: 同步阻塞的BIO 、 同步非阻塞的NIO 、 异步非阻塞的AIO 几种。他们有各自的优缺点,只有掌握了其本质,才能选择适合当前环境类型,从而进行编码!同步与异步同步和异步是针对应用程序而言的。同步值的是用户进程触发IO操作并等待或者轮询的娶查看IO操作是否就绪。而异步是指用户进程触发IO操作以后变开始做别的事情,而当IO操作已经完成的...
2017-01-05 17:04:18
310
原创 Java实现SSH模式加密原理及代码
一、SSH加密原理SSH是先通过非对称加密告诉服务端一个对称加密口令,然后进行验证用户名和密码的时候,使用双方已经知道的加密口令进行加密和解密,见下图:解释:SSH中为什么要使用非对称加密,又使用对称加密,到底有什么用处?到底安全不安全?既然后来又使用了对称加密,开始的时候为什么还要用非对称加密?反过来,既然用非对称加密,为什么又要使用对称加密呢?非对称加密,是为了将客户端产生的256位随机的口令...
2017-01-05 14:53:17
343
原创 Java异常的深入研究与分析
前言本文是异常内容的集大成者,力求全面,深入的异常知识研究与分析。本文由金丝燕网独家撰写,参考众多网上资源,经过内容辨别取舍,文字格式校验等步骤编辑而成,以飨读者。对于本文的内容,建议小白需要多多思考力求掌握,对于老手只需意会温故知新。对于本文的内容,属于基础知识研究范畴,切勿以为读完此文就能将异常知识掌握到家。切记:操千曲而后晓声,观千剑而后识器,所以我觉得没有大量的源码阅读经验,你很难知道什么...
2017-01-05 10:54:00
154
原创 Java内存模型深度解读
Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。原始的Java内存模型存在一些不足,因此Java内存...
2017-01-04 17:32:56
144
原创 Java动态代理与CGLIB
静态代理模式因为需要对一些函数进行二次处理,或是某些函数不让外界知道时,可以使用代理模式,通过访问第三方,间接访问原函数的方式,达到以上目的。interface Hosee{ String sayhi();}class Hoseeimpl implements Hosee{ @Override public String sayhi() { ...
2017-01-04 16:05:54
138
原创 JVM理解其实并不难!
在阅读本文之前,先向大家强烈推荐一下周志明的《深入理解Java虚拟机》这本书。前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行的是class转换的dex文件。当面试官继续问,为什么不能执行class文件时,我却只能回答Dalvik虚拟机内部的优化原因,却不能正确回答具体的原因。其实周志明的这本书就有回答:Dakvik并不是一个Java虚拟...
2017-01-04 15:04:08
145
原创 Java对象初始化顺序
最近我发现了一个有趣的问题,这个问题的答案乍一看下骗过了我的眼睛。看一下这三个类:package com.ds.test;public class Upper { String upperString; public Upper() { Initializer.initialize(this); }}package com.ds.test;public class Lower...
2016-12-27 15:30:57
144
原创 Java开发的几个注意点
1.将一些需要变动的配置写在属性文件中比如,没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中,还是TEST环境中,都可以顺畅无阻地运行,但是一旦部署在PROD上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因也许是线上环境并发造成也许是其他。如果线程数目可以在属性文件中配置,那么使它成为一个单线程应用程序就变得十分容易了。我们...
2016-12-27 15:06:33
146
原创 Java虚拟机类加载机制
看到这个题目,很多人会觉得我写我的java代码,至于类,JVM爱怎么加载就怎么加载,博主有很长一段时间也是这么认为的。随着编程经验的日积月累,越来越感觉到了解虚拟机相关要领的重要性。闲话不多说,老规矩,先来一段代码吊吊胃口。public class SSClass{ static { System.out.println("SSClass"); }} ...
2016-12-27 14:29:06
187
原创 初探Java字符串
String印象String是java中的无处不在的类,使用也很简单。初学java,就已经有字符串是不可变的盖棺定论,解释通常是:它是final的。不过,String是有字面量这一说法的,这是其他类型所没有的特性(除原生类型)。另外,java中也有字符串常量池这个说法,用来存储字符串字面量,不是在堆上,而是在方法区里边存在的。字面量和常量池初探字符串对象内部是用字符数组存储的,那么看下面的例子:S...
2016-12-27 12:38:21
144
原创 Java基础学习总结——Java本地接口JNI详解
对于java程序员来说,java语言的好处和优点,我想不用我说了,大家自然会说出很多一套套的。但虽然我们作为java程序员,但我们不得不承认java语言也有一些它本身的缺点。比如在性能、和底层打交道方面都有它的缺点。所以java就提供了一些本地接口,他主要的作用就是提供一个标准的方式让java程序通过虚拟机与原生代码进行交互,这也就是我们平常常说的java本地接口(JNI——java native...
2016-12-27 10:45:55
199
原创 Java初学者必知:Java语言的11大特点
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。那么java语言的特点是什么呢?1、Java语言是简单的Java 语言的语法与C语言和C++语言很接近,使得大多数...
2016-12-26 15:38:56
185
原创 为什么Java字符串是不可变对象?
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!本文主要来介绍一下Java中的不可变对象,以及Java中String类的不可变性,那么为什么Java的String类是不可变对象?让我们一起来分析一下。答案一:最流行的Java面试题之一就是:什么是不可变对象(immutable ...
2016-12-26 15:02:15
178
原创 Java编程中关于异常处理的10个最佳实践
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!在实践中,异常处理不单单是知道语法这么简单。编写健壮的代码是更像是一门艺术,在本文中,将讨论Java异常处理最佳实践。这些Java最佳实践遵循标准的JDK库,和几个处理错误和异常的开源代码。这还是一个提供给java程序员编写健壮代...
2016-12-26 13:54:39
175
原创 关于 Java 对象序列化您不知道的 5 件事
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处。关于本系列您觉得自己懂 Java 编程?事实上,大多数程序员对于 Java 平台都是浅尝...
2016-12-26 13:21:07
162
原创 Java最大的优势真的在于跨平台吗?
以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。Java最大的优势真的在于跨平台吗?有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Linux用户,这时候如果不想多投入成本对各个平台进行适配,那么Java所谓的”Write once, run everywhere”就显得异常光彩。然而今天,整个软件世...
2016-12-26 10:01:15
238
原创 JVM内存区域划分
学习Java不可避免的要学习Java虚拟机,也就是JVM,Java虚拟机规范里面规定了程序运行期间会使用到的运行时数据区,这也是JVM的内存区域划分的模型,应该可以这么理解吧。这其中有一些是随着虚拟机的启动和退出而创建和销毁的,这些区域是线程共享的,另外有一些是跟各个线程绑定的,随着线程的开始和结束而创建和销毁,我们可以称这些区域是线程私有的。根据《Java虚拟机规范Java SE 7版》和《Ja...
2016-12-23 13:27:41
160
原创 给Java新手的一些建议----Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给大家一些经验,能让大家更好学习和使用Java。 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE相关的、和Java中各个框架相关的内容。 经过这么多年的Java开发,以及结...
2016-12-23 11:19:42
158
原创 Java多态性理解
Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际...
2016-12-23 09:50:49
166
原创 JAVA面试精选【Java基础第二部分】
上一篇,我们给出了大概35个题目,都是基础知识,有童鞋反映题目过时了,其实不然,这些是基础中的基础,但是也是必不可少的,面试题目中还是有一些基础题目的,我们本着先易后难的原则,逐渐给出不同级别的题目,猛料还在后头呢,继续关注哦。 这一章我们继续接下来的35个题目,这些题目也是一些基础知识,看看你有没有掌握咯。 36、数组有没有length()这个方法? String有没有length()这...
2016-12-22 13:53:59
137
原创 Java常见异常总结
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!算术异常类: ArithmeticExecption空指针异常类: NullPointerException类型强制转换异常: ClassCastException数组负下标异常: NegativeArrayException数组...
2016-12-21 14:45:00
192
原创 Java 序列化与反序列化
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!1、什么是序列化?为什么要序列化?Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的...
2016-12-21 12:44:15
117
原创 Java类的三大特性之一:多态
1.Java中的多态多态是指对象的多种形态,主要包括这两种:1.1引用多态a.父类的引用可以指向本类的对象b.父类的引用可以指向子类的对象举个例子:父类Anmail,子类Dog,可以使用父类Anmail来创建父类或者子类的对象,但是子类无法创建父类的对象 1 //父类 2 public class Animal { 3 4 } 5 6 //子类 7 public class Dog...
2016-12-21 11:12:04
96
原创 Java 集合框架
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!Java集合框架大致可以分为五个部分:List列表,Set集合、Map映射、迭代器、工具类List 接口通常表示一个列表(数组、队列、链表栈),其中的元素 可以重复 的是:ArrayList 和LinkedList,另外还有不常用...
2016-12-20 16:46:08
110
原创 Java反射机制——学习总结
什么是反射机制?参考百度百科对java反射机制的定义:“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的 反射机制。”我们通过一些例子,更好理解反射机制。Class类我们知道Java是一门面向对象语言,在Java的世界里,万物皆为对象,比如我们有一个Pers...
2016-12-20 15:19:23
107
原创 Java泛型:泛型类、泛型接口和泛型方法.
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!泛型类 容器类应该算得上最具重用性的类库之一。public class Container{ private String key; private String value; public ...
2016-12-20 14:24:45
187
原创 Java面试知识点总结
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础)。 1. Java中的原始数据类型都...
2016-12-20 13:33:09
141
原创 Java核心技术点之泛型
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象。然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我...
2016-12-20 11:42:45
143
原创 Java 类集框架(Set, List, Map)的使用
虽然面试的要求是要知道HashMap是怎么实现的,令人望而却步,但搞明白它怎么用,就成功了一小半。什么是类集框架是一组类和接口 位于java.util包中 主要用于存储和管理对象 主要分为三大类–集合、列表和映射 集合中的对象不按特定的方式排序,并且没有重复对象。和数学中集合的概念类似。(如果添加了重复的对象,会怎样呢?并不会报错,但重复的元素只算一个)。 列表中的对象按照索引位置排序,...
2016-12-20 11:11:14
197
原创 Java引用和clone方法总结
前几天在写WORKS APPLICATIONS的两题笔试题,就没空写博客了。现在写完了,先分享一下第一个题Magic Cube里遇到的知识点“引用和clone方法”。详细的题解请关注后续博客。 先来说说我是怎么遇到这个知识点的,在解题过程中,我写了一个包含三维数组的类和一个递归方法,大概如下:publicclassCube{privateintlen;//立方体边长privateint[][...
2016-12-20 10:54:52
111
原创 Java程序员最亲睐的Web框架
这一次,我们要讨论的是web框架。只有少数几种语言像Java一样提供了各种各样的web框架,上面的统计图就是一个证据。下面是其他开发者所使用web框架列表:Spring MVC/Spring Boot :Spring可以帮助各地的开发团队构建简单轻便、快捷灵活基于JVM的系统和应用程序 Vert.x :一个用于在JVM上构建反应式应用程序的工具包 JSF :官方的Java EE web框架 ...
2016-12-19 15:23:53
143
原创 35 个 Java 代码性能优化总结
前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优...
2016-12-19 14:31:41
104
原创 Java对email邮箱的真实、有效性验证
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!三种验证邮箱有效性的方式:方式1:public static boolean checkEmail(String email) { if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\...
2016-12-16 14:39:45
3427
3
原创 Java多线程wait()和notify()
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!方法wait()的作用是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止执行,直到接到通知或被中断位置。在调用wait()之前,线...
2016-12-16 13:22:48
258
原创 5个让人激动的Java项目
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438 我们一起学Java!每个Java/JVM领域的技术专家都应从那些项目中获益,他们中有2011在SanJose举办的Jax 会议中提名为最好的技术产品奖的。我之所以选择它们,是因为它们可以广泛用于一系列的项目中,解决真实问题。作为开发者,我们也不得不在...
2016-12-16 11:46:29
139
原创 JVM内存区域划分
学习Java不可避免的要学习Java虚拟机,也就是JVM,Java虚拟机规范里面规定了程序运行期间会使用到的运行时数据区,这也是JVM的内存区域划分的模型,应该可以这么理解吧。这其中有一些是随着虚拟机的启动和退出而创建和销毁的,这些区域是线程共享的,另外有一些是跟各个线程绑定的,随着线程的开始和结束而创建和销毁,我们可以称这些区域是线程私有的。根据《Java虚拟机规范Java SE 7版》和《Ja...
2016-12-16 11:21:35
116
原创 Java动态代理与CGLIB
静态代理模式因为需要对一些函数进行二次处理,或是某些函数不让外界知道时,可以使用代理模式,通过访问第三方,间接访问原函数的方式,达到以上目的。interface Hosee{ String sayhi();}class Hoseeimpl implements Hosee{ @Override public String sayhi() { ...
2016-12-14 16:38:21
103
原创 Java引用和clone方法总结
前几天在写WORKS APPLICATIONS的两题笔试题,就没空写博客了。现在写完了,先分享一下第一个题Magic Cube里遇到的知识点“引用和clone方法”。详细的题解请关注后续博客。 先来说说我是怎么遇到这个知识点的,在解题过程中,我写了一个包含三维数组的类和一个递归方法,大概如下:publicclassCube{privateintlen;//立方体边长privateint[][...
2016-12-14 16:23:06
177
原创 Java类的加载顺序【答疑解惑】
Java类的初始化顺序这个问题经常出现在面试题中,这个面试题设计的知识有类、对象、static关键字、初始化函数、类的加载顺序,咱们一个一个来说。类:类描述了具有相同特性(数据元素)和行为(功能)的对象集合,也是一个数据类型。比如说动物,它有重量、大小的特征(数据元素),也有移动、吃的行为(功能)。对象:对象是具有状态、行为和标识的是上面类的一个实例。每一个对象都有内部数据(它描述该对象的状态)和...
2016-12-14 14:42:24
505
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅