自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 源码make编译问题

Android 源码编译问题代码下载完成1.source build/envsetup.sh2.lunch3.选择lunch后的类型;然后再make某个模块。过了一会你可能会发现会failed,奇怪的是没有error。会提示你try -j value(但还是没有用)。FAILED: out/soong/build.ninjasoong bootstrap failed with: exit status 1解决办法:重启电脑!!!重启之后再进入对应的代码下,重新上面的步骤,就会解决这个不

2021-07-22 15:35:42 3318

原创 Centos上安装Docker

一、安装Docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 $ uname -r2、使用 root 权限登录 Centos。确保 yum 包更新到最新。$ sudo yum update3、卸载旧版本(如果安装过旧版本的话)$ ...

2019-06-17 09:01:11 166

原创 ifconfig

1.作用:ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。2.格式:ifconfig -interface [option] address3.主要参数如下:-interface:指定的网络接口名,如eth0和eth1;up:激活指定的网络接口;down:关闭指定的网络接口;broadcast address:设置接口的广播地址...

2019-05-20 19:39:38 615

原创 Linux下cp拷贝命令的参数含义

-r:递归处理,将指定目录下的文件与子目录一并处理;-v或–verbose:显示执行过程;-f或–force:强制复制文件或目录,不存目的文件或目录是否已经存在。...

2019-05-20 19:31:39 2502

原创 地址解析协议ARP

Address Resolution Protocol 地址解析协议,简称ARP,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到消息之后将该IP地址和物理地址存入本机的ARP缓存中并保留一段时间,下次访问时直接查询ARP缓存以节省资源。Linux下broadcast为广播,uni...

2019-05-20 19:20:21 146

原创 Collection和Collections的区别

Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法;Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类。...

2019-05-14 18:30:39 155 1

原创 Files类的常用方法

1.Files.exists() 检查文件路径是否存在 public static void main(String[] args) { Path path = Paths.get("E:/TXT游戏表.txt"); Boolean fileboolean = Files.exists(path,new LinkOption[]{ LinkOption.NO...

2019-05-14 18:22:38 7910 2

原创 BIO、NIO、AIO的区别

1.阻塞与同步a.阻塞与非阻塞阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式;当数据在没有准备的时候阻塞,则会等待缓冲区数据准备好之后才会处理其他工作,否则一直在那里等待。非阻塞:当进程访问到数据缓冲区时,如果数据没有准备好直接返回,如果数据准备好则带着数据返回。b.同步和异步同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一...

2019-05-11 16:17:42 100

原创 Java中IO流的分类

按功能分类输入流input、输出流output按类型分类字节流、字符流字节流按8位传输,以字节为单位输入输出;字符流16位传输,以字符为单位输入输出。...

2019-05-11 15:51:35 772

原创 接口和抽象类的区别

·实现: 接口需要实现类用implements实现,抽闲类需要使用extends来继承实现。·构造器: 接口不能有构造,抽象类可以有。·实现数量: 实现类只能继承一个抽象类,但是可以实现很多个接口。·访问修饰符: 接口的修饰符默认是public static final所以属性必须初始化,也只能是public,抽象类可以是任意访问修饰符。...

2019-05-11 15:41:03 86

原创 String类的常用方法

indexOf():返回指定字符的索引。String str = new String("student");System.out.println(str.indexOf("d"));3charAt():返回指定索引处的字符。String str = new String("student");System.out.println(str.charAt(2));urepla...

2019-05-11 15:27:49 200

原创 Java中如何将字符串进行反转

使用StringBuffer或者StringBuilder中的reverse()方法。 public static void main(String[] args) { StringBuffer stringBuffers = new StringBuffer("abcdefg"); stringBuffers.reverse(); Syst...

2019-05-11 10:07:42 3447

原创 String str = "a";和String str = new String("a);

两个的内存分配方式不同,String str = “a”;Java虚拟机会将其分配到常量池中,String str String (“a”);则会分配到堆内存中。

2019-05-11 10:00:44 142

原创 Java中操作字符串的类

String、StringBuffer、StringBuilder1.String、StringBuffer、StringBuilder的区别在于,String声明的是不可变的对象,当修改对象的时候就会创建一个新的对象然后指上去;而StringBuffer和StringBuilder则可以在原对象上进行修改,不会创建新的对象。String str = "a";System.out.print...

2019-05-11 09:56:23 671

原创 Math.round()和Math.floor()

Math.round()为四舍五入,但是负数则会舍弃-5。System.out.println(Math.round(2.6));//3System.out.println(Math.round(-1.6));//-2System.out.println(Math.round(-1.5));//-1Math.floor()为直接去掉小数保留整数,如果参数为正数则小数全舍,参数为负数则全入...

2019-05-11 09:34:37 2302

原创 final在Java中的作用

final修饰的类为最终类,不能被继承;final修饰的方法不能被重写;final修饰的变量为常量,在声明时必须初始化,之后不能够修改。

2019-05-11 09:24:21 383

原创 ==和equals的区别

1.==分析对于基本数据类型和引用数据类型==作用的效果是不同的。· 基本数据类型:比较的是值。· 引用数据类型:比较的是引用。String a = "CSDN";String b = "CSDN";String c = new String("CSDN");System.out.println( a == b ); // trueSystem.out.println( a == ...

2019-05-11 09:17:10 107

原创 JDK和JRE的区别

JDK: Java Development Kit的简称,是Java开发工具包,提供了Java的开发环境和运行环境。JRE: Java Runtime Environment的简称,是Java的运行环境,提供了Java所需的运行环境。具体的来说,JDK包含了JRE,还包含了编译Java源码的编译器javac,还包含了很多Java程序调试和分析工具。如果只想运行Java程序则只需要装JRE就可...

2019-05-11 08:43:23 103

原创 对象内存

一个原始数据类型的数组一般需要24字节的头信息(16字节的对象开销,4字节用于保存长度以及4填充字节)再加上保存值所需的内存。这是一个int类型的数组,其中存了N个数,一个int类型的数大小为4字节,加上24字节的头信息,总共是(24+4N)字节。String的标准实现含有4个实例变量:一个指向字符数组的引用(8字节);三个int值(各4字节):第一个int值描述的是字符数组中的偏移量;...

2019-05-10 15:21:38 112

原创 契约式设计(异常/断言)

Java语言在程序运行时检验程序状态的机制:异常(Exception),一般用于处理不受我们控制的不可预见的错误;断言(Assertion),验证我们在代码中做出的一些假设。1.异常与错误异常与错误都是程序运行中出现的破坏性事件。Java采取的是抛出异常或抛出错误。也可以创建自己的异常,最简单的一种是RuntimeException,他会中断程序的执行并打印出一条出错信息:throw n...

2019-05-07 20:56:16 386

原创 Java处理小数点位数

以取小数点两位为例import java.math.BigDecimal;import java.text.NumberFormat;public class Demo01 { public static void main(String[] args) { //方法一 double f = 111.57878; BigD...

2019-05-06 16:06:22 364 2

原创 线程中方法的区别

interrupted和isInterrupted方法的区别sleep和waitwait,notify,notifyAll

2019-04-25 10:42:40 171

原创 HTTP的五种状态码

网络状态码是用来表示服务器HTTP响应状态的3位数字代码,状态码的第一个数字代表了响应的五种状态之一。1?? :指定客户端应相应的某些动作,代表请求已被接受,需要继续处理,HTTP 1.0中没有定义1??状态码,除非在某些试验,服务器禁止向客户端发送1??响应。2?? :代表请求已被服务器接收、理解、并接受。200:请求已成功,请求所希望的响应头或数据体将随此响应返回。201:请求已经被实...

2019-04-25 09:13:38 551

原创 NIO实现原理,与I/O的对比优点

1.阻塞与非阻塞的概念传统的IO流是阻塞式的,当一个现成调用read()或write()时,该线程阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行IO操作时,由于线程会阻塞,所以服务器端必须为每一个用户提供一份独立的现成进行处理,当服务器需要大量客户端时,性能急剧下降。Java NIO是非阻塞式的。当线程从某通道进行读写数据时,若没有数据,该线程可以进...

2019-04-22 15:54:12 224

原创 Java类加载机制

类加载过程加载—验证—准备—解析—初始化

2019-03-18 09:28:47 102

原创 volatile和Synchronized的区别

volatile关键字:当把变量声明为volatile类型后,编译与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值,JVM保证了每次变量都从内存中读取,跳过CPU cache这一步。当一个变量被声明为volatile后,将具备以下两种特征...

2019-03-17 15:30:53 113

原创 JVM调优参数

JVM参数:标准参数-X:非标准参数-XX:不稳定参数(性能参数)堆设置-Xms:初始堆大小-Xmx:最大堆大小-Xmn:新生代大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和老年代的比值(如n为3,表示年轻代与老年代比值为1:3)-XX:SurvivorRatio=n:年轻代中Eden和Survivor区的比值,注意Survivor有两...

2019-03-17 13:00:43 101

原创 Java内存泄漏和内存溢出

Java内存泄漏和内存溢出内存泄漏:是指程序在申请内存后,无法释放以申请的内存空间,一次内存泄漏似乎不会有太大影响,但内存泄漏堆积后的后果就是内存溢出。内存溢出:是指程序申请内存时,没有足够的内存供申请者使用。内存溢出的解决方案:原因:内存中加载的数据量过于庞大,启动参数内存值设定过小。解决:修改JVM启动参数,直接增加内存。Java内存区域中可能发生内存溢出的区域1.Java堆:当...

2019-03-15 23:04:05 142

原创 Java内存区域和Java内存模型

1.Java内存区域:方法区+本地方法栈+堆+虚拟机栈+程序计数器(最后两个是线程私有还有本地方区)A.方法区:主要存储已被虚拟机加载的类信息、常量、静态变量、及时编译器编译后的代码等数据;B.堆:是Java虚拟机所管理的内存中最大的一块,主要用于对象实例的存放;C.程序计数器:主要代表当前线程所执行的字节码行号指示器。字节码解释器工作的时候,通过改变计数器的值来选取下一条需要执行的字节码...

2019-03-15 22:51:23 169

原创 GC算法

GC算法1.标记-清除算法:主要用于老年代的垃圾回收a)首先标记出所有需要回收的对象,标记完成后统一回收被标记的对象;b)不足之处:i.效率低下;ii.标记清除之后会产生大量的内存碎片,空间碎片太多的话会导致以后再分配较大的对象时无法找到足够的连续的内存而不得不提前触发一次GC。2.复制算法:主要用于新生代的垃圾回收a)将内存划分为容量大小相等的两快,每次只使用其中的一块,当一块内存...

2019-03-15 22:36:44 120

原创 快速失败和安全失败

fail-fast机制:集合遍历过程中发生了增删改,则会抛出Concurrent Modification Exception异常。实现原理:遍历过程中会使用一个modCount变量,设置一个初值,集合遍历期间内容发生变化这个变量就会改变,当遍历下一个元素时会判断这个变量是否改变,如果改变则会抛出异常,如果修改的值和原来的值相等则不会抛出异常。Java.util包下的集合类均是快速失败,不允许多...

2019-03-15 21:39:37 125

原创 final、finally、finalize的区别

final:用于声明属性、方法、,分别表示属性不可变,方法不可覆盖,类不可继承;

2019-03-14 16:52:12 107

原创 接口和抽象类的区别

1.定义接口用interface,抽象类用abstract class;2.接口中的方法都是抽象的,而抽象类的方法可以有实现;3.接口只能定义静态常量,可以用接口名进行访问,而抽象类可以定义普通常量也可以定义静态常量;4.接口和抽象类均不可实例化,接口没有构造器,但是抽象类可以有构造方法,构造方法是为了子类初始化时初始化抽象类;5.接口不能有初始化块,抽象类可以有;6.一个类可以实现多个...

2019-03-12 19:59:05 93

原创 extends和implements的区别和使用场景

1.extends:只能继承一个类,可以使用父类的方法,也可以重写父类的方法。2.implements:实现一个或多个接口,接口的方法都是抽象的,使用Implements类需要实现接口的方法(除了抽象类)。使用场景:继承:如果多个类的某个功能相同,就可以抽象出一个基类,把该功能提到基类中,继承基类。实现:如果多个类处理的目标是一样的,但实现细节不一样,就可以定义一个接口即一个标准,其他类来...

2019-03-12 19:39:34 1673

原创 String、StringBuffer、StringBuilder的区别

String、StringBuffer、StringBuilder的区别1.性能、速度:StringBuilder>StringBuffer>String。2.String为字符串常量,也就是final类,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦被创建就不可被更改的,后两个的对象是变量,可以被修改,对变量进行修改就是直接对该对象进...

2019-03-12 19:23:30 112

原创 设计模式--单例模式(Java)

一、概念:单例模式是一种创建型设计模式,费模式可以保证一个类有且只有一个实例对象。GoF对该模式的定义:保证一个类只有一个实例存在,并且同时提供能对该实例进行访问的全局方法。二、实现的三种方法1.饿汉式(1)代码实现public class Singleton{private static final Singleton st = new Singleton();private Si...

2019-03-12 19:06:17 121

原创 线程池

线程池a) 当程序中需要创建大量生存期很短暂的线程时,应该考虑使用线程池,类似于数据库连接池。b) 线程池使用方法:Java通过Executors提供常用的四种线程池,分别为:i.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程;ii.newFixedThreadPool创建一个定长的线程池,可控线程最大并...

2019-03-06 12:26:56 202

原创 多线程相关总结的知识

一、多线程1.创建线程的三种方法a) 继承Thread类,重写run()方法,run()就是线程的执行体;b) 实现Runnable接口,重写接口里的run()方法,run()方法是线程的执行体,然后以Runnable接口实现类的实例作为Target来创建Thread类的实例,该实例才是真正的线程对象;c) 创建Callable接口的实现类,实现接口里面的call()方法,该方法就是线程的...

2019-03-06 11:25:45 163

空空如也

空空如也

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

TA关注的人

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