- 博客(33)
- 收藏
- 关注
原创 JAVA设计模式之(五)原型模式
本文继续介绍23种设计模式系列之原型模式。定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接...
2019-02-28 23:23:39
81
原创 sleep和wait的区别
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针...
2019-02-26 23:25:05
78
原创 git操作指南
一、创建新仓库创建新文件夹,打开,然后执行git init以创建新的 git 仓库。二、检出仓库执行如下命令以创建一个本地仓库的克隆版本:git clone /path/to/repository 如果是远端服务器上的仓库,你的命令会是这个样子:git clone username@host:/path/to/repository三、工作流你的本地仓库由 git 维护的三...
2019-02-26 23:18:28
350
原创 git创建新分支,查看分支,删除分支,切换分支等问题
一、使用背景众所周知,在日常开发中,我们需要把测试服务器和正式服务器分开。相应的,为了保持正式版本能正常运行,我们需要新建一个git分支用来专门的存放正式版APP的源码。这样,每当我们生成一个版本的时候,我们都可以把稳定版本的源码放到online这个分支上。然后在master分支上继续开发新功能。当需要升级版本的时候,我们只需要把master分支上成熟的代码推送到online分支即可。二、创...
2019-02-26 00:20:51
1678
原创 git fatal: destination path '**' already exists and is not an empty directory.解决
网上说需要删除或者重新命名已经存在的本地文件,然后在clone 其实不用。第一步 :进入到已存在的目录 cd (/file)第二步: 初始化git init第三步: 添加远程仓库地址 git remote add origin (address)第四步: 添加本地代码 git add .第五步: 提交本地代码 git commit -m “init”第六步: 提交到远程仓库...
2019-02-25 23:58:35
1765
原创 如何将自己写的代码上传到github上
首先注册github账号,登录,创建新仓库 ,点击+,点击new repository得到如下页面,填写仓库名,自己随便写一个名字,下面的描述可写可不写,点击Initialize this repository with a README,然后创建:下载git shell,由于git是国外的,下载非常慢。在此我给出我已经下载好了的。链接: https://pan.baidu....
2019-02-25 00:53:59
107
原创 PowerDesigner的使用教程
PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一。Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesigner则与其正好相反,它是以数据库建模起家,后来才发展为一款综合全面的Case工具。PowerDesigner主要分为7种建模文件:1. 概念数据模型 (CDM)对数据和信息进行建模,利用实体-...
2019-02-24 17:10:37
1419
原创 关于HTTP协议,看这一篇就够了!
一、HTTP简介1.HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。2.HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,...
2019-02-23 22:13:40
426
原创 Java实现迭代器修改集合中的数据
直接上代码!!!package com.test;import java.util.ArrayList;import java.util.Iterator;public class ArrayListTest { public static void main(String[] args) { boolean flag = false; Ar...
2019-02-22 23:26:59
2455
原创 java运算符 与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1、与运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。public class data13{...
2019-02-21 23:20:54
1467
2
原创 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题。在处理这...
2019-02-21 00:23:21
9074
1
原创 JAVA设计模式之(四)代理模式
本文继续介绍23种设计模式系列之单例模式。一、代理模式应用场景举例比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也具有一定的状态,在软件项目中这个对象也具有管理财务进销...
2019-02-20 22:29:08
99
原创 JAVA设计模式之(三)抽象工厂模式
本文继续介绍23种设计模式系列之单例模式。前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例。例子背景:随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和发动机。宝马320系列配置A型号空调和A型号发动机,宝马230系列配置B型号空调和B型号...
2019-02-19 22:45:35
172
原创 JAVA设计模式之(二)工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部...
2019-02-19 21:56:19
113
原创 自定义一个java.lang.String类,这个类是否可以被类加载器加载?为什么。
1.、双亲委派模型类加载器可分为两类:一是启动类加载器(Bootstrap ClassLoader),是C++实现的,是JVM的一部分;另一种是其它的类加载器,是Java实现的,独立于JVM,全部都继承自抽象类java.lang.ClassLoader。jdk自带了三种类加载器,分别是启动类加载器(Bootstrap ClassLoader),扩展类加载器(Extension ClassLoa...
2019-02-18 23:03:21
8137
12
原创 数组和链表数据结构描述,各自的时间复杂度。
两种数据结构都是线性表,在排序和查找等算法中都有广泛的应用一、各自的特点:数组:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除...
2019-02-17 22:57:14
6872
4
原创 如何屏蔽CSDN上面的广告
首先我们来下一个插件!!!插件下载地址 密码:vyfx下载之后,在谷歌浏览器的设置里面点击更多工具,然后点击扩展程序,然后直接把刚刚下好的插件拖进去(需要点击开发者模式以及勾上在隐身模式下启用)。这样表明成功了,刷新你的csdn页面,你会发现那些恶心的广告没有了。...
2019-02-17 21:50:13
175
原创 java容易混淆的15个知识点
java知识点不多,但是有一些经常会被我们忽略1.java是强类型的语言,数组也是对象,一旦确定数组的类型,里面就只能存放一个类型的数据。2.新建的对象都被存放到堆上,如果没有引用,会很快垃圾回收。3.java没有全局变量和方法这个概念,全局方法,被加上static关键字,全局的变量是,static final4.java是值传递,对于primitive基本类型,是拷贝数值,对于复杂对象类...
2019-02-17 21:00:10
58
1
原创 Java异常error和exception的区别,CheckedException,RuntimeException的区别。
异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。要打开的文件不存在。网络通信时连接中断,或者JVM内存溢出。这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文...
2019-02-17 11:47:08
3536
1
原创 请结合OO设计理念,谈谈访问修饰符public、private、protected、default在应用设计中的作用。
Java中访问修饰符public、private、protecte、default的意义讲解:访问修饰符,主要标示修饰块的作用域,方便隔离防护。public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类...
2019-02-17 01:09:07
2224
原创 Java hashCode() 和 equals()的若干问题解答
本章的内容主要解决下面几个问题:1 equals() 的作用是什么?2 equals() 与 == 的区别是什么?3 hashCode() 的作用是什么?4 hashCode() 和 equals() 之间有什么联系?一、equals() 的作用equals() 的作用是 用来判断两个对象是否相等。equals() 定义在JDK的Object.java中。通过判断两个对象的地址是否相...
2019-02-16 00:54:41
151
原创 深入理解Java的接口和抽象类
对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:一、抽象类二、接口三、抽象类和接口的区别一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一...
2019-02-15 23:22:16
153
原创 在jdk1.5中,引入了泛型,泛型的存在是用来解决什么问题。
首先我们要了解:什么是向下转型和向上转型。面向对象的转型只会发生在具有继承关系的父子类中(接口也是继承的一种)向上转型:其核心目的在于参数的统一上,根本不需要强制类型转换。向下转型:是为了操作子类定义的特殊功能,需要强制类型转换,可是现在存在的问题是:向下转型其实是一种非常不安全的操作,以为编译的时候,程序不会报错,而在运行的时候会报错,这就是传说中的—迷之报错。不过呢,在JDK1.5之...
2019-02-14 23:27:25
3242
原创 Java深入理解深拷贝和浅拷贝区别
一、拷贝的引入(1)、引用拷贝创建一个指向对象的引用变量的拷贝。Teacher teacher = new Teacher("Taylor",26);Teacher otherteacher = teacher;System.out.println(teacher);System.out.println(otherteacher);输出结果:blog.Teacher@355da2...
2019-02-13 23:31:47
14837
25
原创 JAVA设计模式之(一)单例模式
本文继续介绍23种设计模式系列之单例模式。概念:java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。单例模式有以下特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、...
2019-02-10 22:31:57
187
原创 Spring aop 基于JDK动态代理和CGLIB代理的原理以及为什么JDK代理需要基于接口
Spring Aop是什么简单来说就是面向切面编程。Spring AOP的实现对于接口来说就是使用的JDK的动态代理来实现的,而对于类的代理使用CGLIB来实现。JDK动态代理JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。代理的目的是调用目标方法时可以转而执行InvocationHandler的invoke方法,实际上sprin...
2019-02-10 20:45:56
535
原创 描述Java动态代理的几种实现方式,分别说出相应的优缺点。
AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor的种类,如BeforeAdviseInterceptor,AfterAdviseInterceptor以及ThrowsAdviseIntercepto...
2019-02-09 23:52:09
7681
2
原创 java动态代理实现与原理详细分析
一、代理(1)、什么是代理?大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 商户---->明星经纪人(代理)---->明星这种模式。我们可以不通过直接与明星对话的情况下,而通过明星经纪人(代理)与其产生间接对话。(2)、什么情况下使用代理?a.设计模式中有一个设计原则是开...
2019-02-08 23:22:43
5967
9
原创 Java类的各种成员初始化顺序如:父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序
class B extends A ,然后A类也就是父类里面有静态代码块,普通代码块,静态方法,静态成员变量,普通成员变量,普通方法。子类也是这样,然后继承之后,关于程序打印输出的结果。涉及到Java类的各种成员的初始化顺序。经测试,得到如下结论:1.父类【静态代码块】和【静态成员】,按在代码中出现的顺序依次执行。2.子类【静态代码块】和【静态成员】,按在代码中出现的顺序依次执行。3....
2019-02-06 22:56:25
149
原创 Java反射中,Class.forName和ClassLoader的区别
一、区别java类装载过程分为3步:1、加载Jvm把class文件字节码加载到内存中,并将这些静态数据装换成运行时数据区中方法区的类型数据,在运行时数据区堆中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口。*注:方法区不仅仅是存放方法,它存放的是类的类型信息。2、链接:执行下面的校验、准备和解析步骤,其中解析步骤是可选的a:校验:检查加载的clas...
2019-02-06 22:29:55
2707
2
原创 Java反射机制的原理以及创建类实例的三种方式是什么?
一、什么是Java反射机制当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。我们认为java并不是动态语言,但是它却有一个非常突出的动态相关机制,俗称:反射。IT行业里这么说,没有反射也就没有框架,现有的框架都是以反射为基础。在实际项目开发中,用的最多的是框架,填的最多的是类,反射这一概念就是将框架和类揉在一起的调和剂。所以,反射才是接触项目开发的敲门砖!二、反射的应用及原理...
2019-02-05 22:44:33
5714
原创 源码解读之(一)HashMap
一、HashMap 概述Map 是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。简单地说,HashMap 是基于哈希表的 Map 接口的实现,以 Key-Value 的形式存在,即存储的对象是 Entry (同时包含了 Key 和...
2019-02-05 16:56:11
193
原创 Linux上安装Redis并搭建集群(二)
二、搭建Redis集群1、安装ruby相关环境和包(ruby的安装踩了很多坑,所以放在首位先安装)(1).安装ruby环境yum install rubyyum install rubygems(2).安装ruby包gem install redis-5.0.3.gem(安装ruby包,遇到了各种坑,列举了我踩过所有的坑,可以去我另一篇帖子查看)2、创建集群节点文件目录在/u...
2019-02-01 01:02:09
232
空空如也
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝