自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Git

集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件会慢的无法让人忍受。而分布式版本控制不需要连网就能工作。分布式版本控制新建分支、合并分支操作速度非常快,而集中式版本控制新建一个分支相当于复制一份完整代码。中心服务器中心服务器用来交换每个用户的修改,没

2021-01-22 13:14:53 125

原创 秒解github上的图片显示不出来的问题

首先打开文件: C:\Windows\System32\drivers\etc\hosts在文件末尾添加:# GitHub Start 140.82.113.3 github.com140.82.114.20 gist.github.com 151.101.184.133 assets-cdn.github.com151.101.184.133 raw.githubusercontent.com151.101.184.133 gist.githubuser

2021-01-22 12:56:07 2124

原创 ArrayList源码分析

1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E>

2021-01-04 08:39:27 116

原创 BIO,NIO,AIO 总结

BIO,NIO,AIO 总结Java 中的 BIO、NIO和 AIO 理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码。只需要使用Java的API就可以了。在讲 BIO,NIO,AIO 之前先来回顾一下这样几个概念:同步与异步,阻塞与非阻塞。关于同步和异步的概念解读困扰着很多程序员,大部分的解读都会带有自己的一点偏见。参考了 Stackoverflow相关问题后对原有答案进行了进一步完善

2021-01-04 08:12:57 123

原创 代理模式详解

1. 代理模式代理模式是一种比较好的理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。举个例子:你的找了一小红来帮你问话,小红就看作是代理我的代理对象,代理的行为(方法)是问话。代理模式有静态代理和动态代理两种实现方式,我们 先来看一下静态代理模式的实现。2. 静态代理

2020-12-25 10:25:08 190

原创 反射机制

反射机制介绍JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。获取 Class 对象的四种方式如果我们动态获取到这些信息,我们需要依靠 Class 对象。Class 类对象将一个类的方法、变量等信息告诉运行的程序。Java 提供了四种方式获取 Class 对象:1.知道具体类的情况下可以使用: Class alunbarClass =

2020-12-25 10:04:13 92

原创 用好枚举不简单

1.概览enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。那么这种方式由什么优势呢?以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为。下面示例定义一个简单的枚举类型 pizza 订单的状态,共有三种 ORDERED, READY, DELIVERED状态:p

2020-12-18 10:35:38 2278 1

原创 Java常见关键字总结

final 关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:1. final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法;2. final修饰的方法不能被重写;3. final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指向另一个对象。说明:使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含

2020-12-18 10:18:29 171

原创 Java基础知识(六)

3.Java 核心技术3.1. 反射机制JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。3.1.1.静态编译和动态编译静态编译: 在编译时确定类型,绑定对象动态编译: 运行时确定类型,绑定对象3.1.2.反射机制优缺点优点: 运行期类型的判断,动态加载类,提高代码灵活度。缺点: 1,性能瓶颈:反射相当于一系列解释操作,通

2020-12-11 11:08:12 240

原创 Java基础知识(五)

1.Java 面向对象1.1类和对象1.1.1 面向对象和面向过程的区别面向过程 :面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展。面向对象 :面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。1.

2020-12-11 10:39:54 200

原创 Java基础知识(四)

1、方法(函数)1.1、 什么是方法的返回值?返回值在类的方法里的作用是什么?方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。返回值的作用是接收出结果,使得它可以用于其他的操作!1.2、为什么 Java 中只有值传递?首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法

2020-12-04 10:39:46 247

原创 Java基础知识(三)

1、基本数据类型1.1、Java中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?Java中有8种基本数据类型,分别为:6种数字类型 :byte、short、int、long、float、double1种字符类型:char1种布尔型:boolean。这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean基本类型位数字节默认值int3240sho

2020-12-04 10:16:24 75

原创 Java基础知识(二)

一、Java 语法字符型常量和字符串常量的区别?形式上: 字符常量是单引号引起的一个字符; 字符串常量是双引号引起的0个或若干个字符含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)占内存大小 字符常量只占 2 个字节; 字符串常量占若干个字节 (注意: char 在 Java 中占两个字节),字符封装类 Character 有一个成员常量 Character.SIZE 值为16,单位是bits,该值除以8(1byte

2020-11-27 14:45:20 261 1

原创 Java基础知识(一)

Java基础知识一、Java 语言有哪些特点?简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);可靠性;安全性;支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持);支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便)编译与解释并存;二、 JVMJava 虚拟机(JVM)是运行 Java

2020-11-27 11:52:25 984 6

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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