自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大帅 的CSDN技术尬blog!

唯实唯干 克难奋进

  • 博客(65)

原创 DSL和GPL的区别

DSL和GPL的区别DSL(Domain Specified Language)领域专用语言。GPL(General Purpose Language)通用编程语言GPL也表示 General Public License,表示GUN的的开源许可证,在此,我们只讨论作为语言的GPL。 DSL要理解DSL 分类需要先理解一个概念。“元语言抽象”它是指通过一种语言来构建另一种语言。比如...

2018-11-18 11:44:01 406

转载 Copyright 与 Copyleft

转自But_Bueatiful两种截然相反的版权所有方式:Copyleft(Ɔ),Copyright©Copyright©:版权所有,即软件的一切权利归软件作者私有。许可:各种保护软件版权私有的许可。包括:开源软件、免费软件、共享软件、传统商业软件。特点:软件的版权和其它一切权利归软件作者所私有。用户只有使用权,没有其它权利,包括没有复制软件的权利。盈利方式:出售私有软件(包括:出售...

2018-11-18 10:45:12 1108

转载 动态语言、静态语言、强类型定义语言和弱类型定义语言区别

呵~~(冷笑)第一次接触pythod,是一个朋友告知我它是一种弱类型语言,不用规定变量类型,于是”python=弱类型“ 的概念在我脑海扎根,并且深信不疑!!然后每每和别人谈起pythod时,我就会以资深口吻”哦,pythod啊,它是一种弱类型语言“开头~~现在想想,真是啪啪打脸啊~~~~ 要怪就怪我交友不慎或是记性太好吧!以下转载自 aiming66看到篇文章后,我感觉我的脸有点火...

2018-11-17 15:32:35 184

转载 解释性语言和编译型语言的区别和不同

解释性语言和编译型语言的区别和不同转自 https://blog.csdn.net/u014647208/article/details/78329187 解释性语言和编译型语言的区别和不同解释性语言编译型语言概念计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解...

2018-11-17 11:53:07 114

原创 Maven pom.xml模板、打包、版本控制

18.11.12~13 松江图书馆本章主要涉及以下几点 :①.pom.xml模板 ②.maven-compiler-plugin 编译插件,配置默认jdk ③.dependencyManagment和dependencies 区别 ④.maven依赖的版本控制 ⑤.不同环境下打包项目,选取不同配置文件,对应的打包指令 pom.xml模板...

2018-11-13 11:58:06 3051

原创 maven的常用指令和 eclipse下的m2e插件

maven 配置环境变量maven可以通过dos窗口进行命令操作,安装maven后,需要配置环境变量注意: maven的使用需要本地java环境的支持,所以,必须要安装好java并配置好java的环境变量maven配置环境变量方法一:设置path的值为:E:\apache-maven-3.5.2-bin\apache-maven-3.5.2\bin方法二:方法一是一种很暴力的方式,也...

2018-11-11 17:22:00 92

原创 maven 生命周期 --多模块组装下的生命周期

maven 生命周期 --多模块组装下的生命周期18.11.11 松江图书馆maven的生命周期主要有三块① clean lifecycle② default (bluid) lifecycle③ sit lifecycle关于生命周期,我在学习servlet,session,cookies,request对象 等等… 都涉及到过。但它们的生命周期一般都是一个线性的过程,比如“...

2018-11-11 12:11:26 169

原创 Maven 约定大于配置理解

Maven 约定大于配置理解18.10.9 松江图书馆在刚接触到这6个字的时候,我反正是深深怀疑着,主要原因,是我不理解它具体的意思。紧接着,我是一顿找啊,但发现没有各类博中,并没有找到我想要的答案,但也随着知识慢慢在我体内转换,发酵,也逐渐有所领悟。约定大于配置,因为这个概念是在学习maven时,横空抛出来的,所以,总以为只头关乎于maven,但实则,约定大于配置更像是一种编程思维呢...

2018-11-09 13:12:01 735

原创 Maven的repository介绍和 mirror设置

Maven的repository介绍 和 mirror设置本文以 Maven的Mirror和Repository 的详细讲解以模板进行编写主要是对原文进行小量补充,但想到到CSDN积分,挂了原创的牌子,原创见谅~18.11.9 松江图书馆1 Repository(仓库)1.1 Maven仓库主要有2种:1.2 Remote Repository主要有3种:1.3定义仓库1...

2018-11-09 12:22:46 1343

原创 Maven 依赖范围和依赖传递详解

Maven 依赖范围和依赖传递详解18.10.8 松江图书馆Maven 依赖范围和依赖传递详解依赖基本配置依赖范围依赖传递maven默认依赖体制第一原则:以短路径长度为准第二原则:相同路径长度时,以pom中声明顺序为准maven pom中配置 exclusion标签 手动去除依赖dependencyManagement和dependencise的区别...

2018-11-08 18:38:36 2222

原创 byte类型 -0 和 -128的二进制原码都为 1000 0000?

byte类型 -0 和 -128的二进制原码都为 1000 0000?我们都知道,byte类型的取舍范围是-128~127.因为byte类型是1个字符 占8个比特位,最多能装256个数(每个位能表示2中可能,有8位,那么就有2的8次方种可能)但是256是要考虑正负情况的,比如说单纯的+256,放在一个byte里面,是装不下的。二进制规定,正数的原码就是其本身,而负数的原码是在最高位补1....

2018-10-14 09:59:27 1704 2

原创 深入Tomcat之 通过配置server.xml可以实现的功能

深入Tomcat之 通过配置server.xml可以实现的功能本章主要从以下几个问题入手解决修改tomcat默认端号配置虚拟目录多域名登陆解决2.1 拓展 windos本地临时域名配置配置虚拟主机问题一实际用户在浏览器中访问网网站,只需要域名或ip就可实现访问,并未输入端口号,我们只需要把tomcat默认的端口8080,该为http默认端口80,便可实现。...

2018-10-13 10:04:50 286

原创 踩坑java基本数据转换

踩坑java基本数据转换说实话,基本数据类型转换工作中用到不多,but在面试中经常会有此类的问题,而且,经常会出现一些有毒的题目,当然,也有可能是因为之前我太simple,才会被套路首先,你要明白一点, java中整型的默认类型是intjava中整型的默认类型是int,浮点型的默认值就double如果申明一个long类型,需要加L或l,如long i =1L;如果申明一个flao...

2018-10-11 17:07:17 123

原创 java中转义符

\t 制表符,占8位输出结果输出结果

2018-10-11 09:26:12 490

原创 java中Block代码块的四种用法 附带速记卡

直接上速记卡特别注意:当有继承关系时,执行顺序为父类静态代码块>子类静态代码块 >父类构造代码块>父类空构造>子类构造代码块>子类空构造主要针对这个顺序,我们简单撸一个Codepackage Block;public class Fu { static int i; int j; static { i = 15; int i = ...

2018-10-11 08:52:35 2640

原创 简述 抽象类和接口的区别 附速记卡

逻辑区别:抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高抽象类是对整一个类的属性,行为等方面进行抽象,而接口则是对行为抽象。就好比飞机和鸟,抽象类抽象出的是飞行物类。而接口则是抽闲出飞行方法特别说明:如果一个抽象类实现了接口,不需要重写接口所有抽象方法,可以按需重写(也可以将重写的方法改成abstract抽象方法),子类在继承抽象类后,除必须要重写抽象类中...

2018-10-10 18:01:59 387

原创 break continue return 在循环语句中的区别

breakbreak用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 break不仅可以结束其所在的循环,还可结束其外层循环。此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟着英文冒号(:)的标识符。且它必须放在循环语句之前才有作用。public class BreakTe...

2018-10-10 17:07:56 119

转载 几张图轻松理解String.intern()

转自 https://blog.csdn.net/soonfly/article/details/70147205 在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),...

2018-10-10 08:30:48 97

原创 Java中的双重检查锁(double checked locking)分析

Java中的双重检查锁(double checked locking)分析双重检查锁从执行效率来看,实现了效率的优化,避免了在首层判断就加上Synchorzied同步锁,导致锁的粒度过大,代来效率的低下;另外,为了必免jvm在指令优化时,对创建对象(new)过程出现的指令重排序现象,需要组引用对象用volatile修饰下面我们正式开始分析相信,我们在解决并发获得单例时,第一想到的就在g...

2018-10-08 15:54:42 1017 2

转载 设计模式 之 单例模式 单例的7种写法

设计模式 之 单例模式 单例的7种写法单例的特点: ①构造器私有化 ② 对外提供getInstance方法单例主要分为懒汉式和饿汉式,下面所说的7种写法,基本上为这俩种的变型转自 单例模式的七种写法第一种(懒汉,线程不安全)public class Singleton { private static Singleton instance; private Singleton ...

2018-10-08 15:22:19 68

原创 java中 long和double类型的赋值是原子性吗?

以上问题,在百度中搜答案的时候,竟发现大家语调一致地认为: long和double类型的赋值不是原子性的。but,其实不是这样的。那你有想过吗,为什么同样是基本数据类型,byte ,int short它们的赋值就是原子性的呢?讲到根本,原来啊,是和你的操作系统是有关的,32位操作系统每次读取最长的是4个字节,32bit,所以,在32位操作系统上,超过32bit的数据是需要分俩次读取的。那么...

2018-10-08 09:08:21 1464 1

原创 Enumerator迭代器和Iterator迭代器区别

Enumerator迭代器和Iterator迭代器区别Iterator也是一个接口,它的源码如下:package java.util;public interface Iterator<E> { boolean hasNext(); E next(); void remove();} Enumeration是一个接口,它的源码如下:package ja...

2018-10-03 17:10:28 934

转载 fail-fast错误机制 ConcurrentModificationException 并发修改异常

fail-fast错误机制转自 https://www.jianshu.com/p/fb824b3cf987fail-fast简介fail-fast 机制是java集合中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合...

2018-10-03 15:48:16 220

转载 HashMap实现原理

HashMap实现原理 HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。//HashMap的主干数组,可以看到就是一个Entry数组,初始值为空数组{},主干数组的长度一定是2的次幂,至于为什么这么做,后面会有详细分析。transient Entry<K,V>[] table = (Entry...

2018-10-03 14:41:11 60

原创 遍历HashMap五种方法

public static void main(String[] args) { Map<String,String> map=new HashMap<String,String>(); map.put("1", "value1"); map.put("2", &q

2018-10-03 14:14:56 198

原创 集合四课之四 Map接口下,HashTable、LinkedHashMap、HashMap和TreeMap介绍与区别 附带速记卡

先来看看组织图

2018-10-03 09:56:15 69

原创 ArrayDeque双端队列完全解析

ArrayDeque双端队列完全解析重点:底层通过循环数组实现 俩个重要属性 head tail不能添加null值,不然会报空指针每次扩容都是2的n次方可以实现普通队列先进先出排序,也可以实现栈先进后出的排序特别留意,它里面通过二进制方式判断数组是否已满 (tail = (tail + 1) & (elements.length - 1)) == head注意操作插入...

2018-10-02 15:27:35 3043

原创 PriorityQueue源码分析

PriorityQueue源码分析重点知识罗列PriorityQueue 采用数组的形式保存数据,逻辑上采用二叉堆储存有关二叉堆的实现原理,查看本人博文 Ted 带你学习数据结构 之 二叉堆PriorityQueue 数组排序并非按照插入顺序,而是需要根据比较器判断; 插入自定义对象时,自定义对象需要实现Comparable接口 ,或者使用外部比较器对象,外部比较器对象需实现Com...

2018-10-01 14:35:15 369

原创 Ted 带你学习数据结构 之 二叉堆(Binary Heap)

二叉堆(Binary Heap)(1)structure propertyHeap(堆)是一个除了底层节点外的完全填满的二叉树,底层可以不完全,左到右填充节点。(a heap is a binary tree that completely filled, with the exception of bottom level, which is filled from left to righ...

2018-10-01 12:53:04 410

原创 逻辑运算符和位运算符介绍 附带速记卡

位运算符“&”、“|”、“~”、^移位运算符“<<”、“>&a

2018-09-29 17:07:41 127

原创 集合四课之三 Queue接口下,PriorityQueue、ArrayDeque和LinkedList介绍与区别 附带速记卡

df fds

2018-09-28 18:59:28 244

原创 集合四课之二 Set接口下,HashSet、LinkedHashSet和TreeSet介绍与区别 附带速记卡

HashSet、LinkedHashSet和TreeSet介绍

2018-09-28 14:26:51 106

原创 O(1), O(n), O(logn), O(nlogn) 的区别

在描述算法复杂度时,经常用到O(1), O(n), O(logn), O(nlogn)来表示对应复杂度程度, 不过目前大家默认也通过这几个方式表示空间复杂度 。那么,O(1), O(n), O(logn), O(nlogn)就可以看作既可表示算法复杂度,也可以表示空间复杂度。大O加上()的形式,里面其实包裹的是一个函数f(),O(f()),指明某个算法的耗时/耗空间与数据增长量之间的关系。其中...

2018-09-28 13:48:03 55824 20

原创 Ted 带你学习数据结构 之 哈希表(hashTable)

Ted 带你学习数据结构 之 哈希表申明一下,本章节部分内容是我在不同博文中选取,整合梳理得出自认为适合从"小白猿"起点的学习,内容浅,只是作为入门读物;选取博文链接置于本章尾首先在正式学习之前,我罗列出以下几个问题,根据这些问题,我们逐一来解答。 什么是散列(hashing) ?什么是哈希映射?什么是散列函数(hashing function)?

2018-09-28 11:55:57 141

转载 LinkedList源码解析 基于Node结构

LinkedList底层实现上有俩种,一种是基于Node结节;另外一种基于Entry对象本篇主要介介绍基于Node节点的源码分析,有关数据结构和基于Entry对象的源码介绍可查看本人博文 LinkedList源码解析 基于Entry结构https://blog.csdn.net/ted_cs/article/details/82853009LinkedList的定义public clas...

2018-09-26 16:01:52 705

转载 LinkedList源码解析 基于Entry结构

2018-09-26 14:33:50 266 1

原创 号外!RandomAccess它是个空接口!

号外!RandomAccess它是个空接口关于RamdomAccess接口,比较正规的解释为:用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效。那么,接下来,Ted就敲起键盘,带着你撸一撸它,感受一下它的触感。!它是一个空接口 标记接口查看源码,发现就这这样的public interface RandomAccess {}...

2018-09-26 13:41:47 430

转载 To Java程序员:切勿用普通for循环遍历LinkedList

To Java程序员:切勿用普通for循环遍历LinkedList ArrayList与LinkedList的普通for循环遍历对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法:public static void main(String[] args){ ...

2018-09-26 09:18:03 1115

原创 集合四课之一 List接口下,ArrayList、vector和LinkedList介绍与区别 附带速记卡

2018-09-25 18:32:35 92

原创 设计模式 之 装饰器模式

设计模式 之 装饰器模式我们都知道 ,设计模式都是前人在实际应用中,总结经验形成的一套模式。今天要分享的呢,是装饰器模式,那么,它适用什么应用场景呢?举个例子,比如日常女生出门穿衣化妆的过程,当然这里面涉及形象学,美学,艺术学…等等学科,很是复杂。但为了简单,我们就把它简化穿衣。 转换成编程语言,大概就是new Girl.调取穿衣的方法,然后就结束了。 呵呵,~ 果然我没有女朋友,大概也...

2018-09-23 16:23:35 70

空空如也

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除