03 2020 档案

摘要:1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开 阅读全文
posted @ 2020-03-31 23:56 edda_huang 阅读(125) 评论(0) 推荐(0) 编辑
摘要:1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? Java ?1234567new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto generated method stub}}). 阅读全文
posted @ 2020-03-31 23:49 edda_huang 阅读(306) 评论(0) 推荐(0) 编辑
摘要:ReenTrantLock可重入锁(和synchronized的区别)总结 可重入性: 从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的 阅读全文
posted @ 2020-03-31 23:22 edda_huang 阅读(453) 评论(0) 推荐(0) 编辑
摘要:1. 用什么关键字修饰同步方法 ? 用synchronized关键字修饰同步方法 2. 同步有几种实现方法,都是什么?分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个 阅读全文
posted @ 2020-03-31 23:16 edda_huang 阅读(2478) 评论(0) 推荐(0) 编辑
摘要:UML简要类图关系: 下面详细看一下三者的区别: Executor vs ExecutorService vs Executors 正如上面所说,这三者均是 Executor 框架中的一部分。Java 开发者很有必要学习和理解他们,以便更高效的使用 Java 提供的不同类型的线程池。总结一下这三者间 阅读全文
posted @ 2020-03-31 23:09 edda_huang 阅读(96) 评论(0) 推荐(0) 编辑
摘要:互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。 同步其实已经实现了互斥,所以同步是一种更为复杂的互斥。 互斥是一种特殊的同步。 所谓互斥,就是 阅读全文
posted @ 2020-03-31 22:30 edda_huang 阅读(272) 评论(0) 推荐(0) 编辑
摘要:这些方法存在于同步中; 使用这些方法必须标识同步所属的锁; 锁可以是任意对象,所以任意对象调用方法一定定义在Object类中。 Condition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、noti 阅读全文
posted @ 2020-03-31 22:18 edda_huang 阅读(205) 评论(0) 推荐(0) 编辑
摘要:Copy On Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 阅读全文
posted @ 2020-03-31 22:06 edda_huang 阅读(137) 评论(0) 推荐(0) 编辑
摘要:前言 ThreadLocal的作用就是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。 但是如果滥用ThreadLocal,就可能会导致内存泄漏。 下面,我们将围绕三个方面来分析ThreadLocal 内存泄漏的问题 Threa 阅读全文
posted @ 2020-03-31 20:54 edda_huang 阅读(214) 评论(0) 推荐(0) 编辑
摘要:在Java多线程中,可以使用synchronized关键字实现线程之间的同步互斥,在jdk1.5后新增的ReentrantLock类同样可达到此效果,且在使用上比synchronized更加灵活。观察ReentrantLock类可以发现其实现了Lock接口public class Reentrant 阅读全文
posted @ 2020-03-31 19:53 edda_huang 阅读(472) 评论(0) 推荐(0) 编辑
摘要:数据类型与运算符1.Java标识符与关键字1.1 Java注释:Java注释主要有三种:(1)单行注释://注释内容 一般用于方法中(用的最多)(2)多行注释:/ 注释内容 /(3)文档注释:/ 文档注释 /(常用于方法和类之上描述方法和类的作用),可用来自动生成文档。1.2 Java标识符Java 阅读全文
posted @ 2020-03-30 23:34 edda_huang 阅读(234) 评论(0) 推荐(0) 编辑
摘要:程序逻辑控制1.Java程序结构与逻辑控制在Java中程序有三种结构:顺序结构、分支结构、循环结构1.1 Java分支结构分支结构:进行逻辑判断,当满足某些条件时才会执行某些语句。 1.if语句 if(布尔表达式){//条件满足时执行的代码}else{//条件不满足时执行的代码}if(布尔表达式){ 阅读全文
posted @ 2020-03-30 23:29 edda_huang 阅读(177) 评论(0) 推荐(0) 编辑
摘要:一、垃圾回收算法1、标记—清除算法1)工作流程算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象(标记阶段),在标记完成后统一回收所有被标记的对象(回收阶段)。2)缺点a. 效率问题:标记和清除这两个过程的效率都不高。b. 空间问题:会产生大量的不连续碎片。2、复制算法(新生代垃圾回收算法 阅读全文
posted @ 2020-03-30 23:27 edda_huang 阅读(160) 评论(0) 推荐(0) 编辑
摘要:抽象类一、抽象类的定义与使用1.抽象类的定义 在普通类的基础上扩充一些抽象方法(抽象方法是只声明而未实现的方法,即没有方法体);所有的抽象方法用abstract关键字定义,并且抽象方法所在的类也要用abstract修饰表示抽象类。 抽象类中包含抽象方法,抽象方法不包含方法体,所以抽象类不能直接产生实 阅读全文
posted @ 2020-03-30 23:22 edda_huang 阅读(431) 评论(0) 推荐(0) 编辑
摘要:Java中特殊的类——Object类1.Object类的概述Object类是java默认提供的类。Java中除了Object类,所有的类都是有继承关系的。默认会继承Object类,即所有的对象都可以用Object进行接收Object类位于java.lang包中,该包中包含着Java最基础和核心的类, 阅读全文
posted @ 2020-03-30 23:19 edda_huang 阅读(236) 评论(0) 推荐(0) 编辑
摘要:接口一、接口的定义与使用抽象类与普通类相比最大的特点就是约定了子类的实现要求,但是抽象类存在单继承的局限。如果既要约定子类的实现要求且要避免单继承局限就要使用接口。(接口优先)1、接口的基本概念 接口就是抽象方法和全局常量的集合,在Java中接口欧使用interface关键字定义。(一般为区分接口, 阅读全文
posted @ 2020-03-30 23:17 edda_huang 阅读(143) 评论(0) 推荐(0) 编辑
摘要:Java中方法的定义与使用1、方法的定义:方法是一段可以被重复调用的代码块。方法的声明: public static 方法返回值 方法名([参数类型 变量……]){ 方法代码体; return 返回值;} 当方法以void 声明时,那么方法没有返回值;(可以使用return来结束调用,常常和if语句 阅读全文
posted @ 2020-03-30 23:16 edda_huang 阅读(1923) 评论(0) 推荐(0) 编辑
摘要:数组的定义与使用1.数组的基本概念(1)数组的动态初始化: 数组首先先开辟内存空间,而后再使用索引进行内容的设置,这种定义数组的方式称为动态初始化 数组是引用数据类型,存在有内存分配问题。在使用前一定要开辟空间(实例化),否则就会产生NullPoninterException 数组的动态初始化(声明 阅读全文
posted @ 2020-03-30 23:13 edda_huang 阅读(257) 评论(0) 推荐(0) 编辑
摘要:类和对象(2)一、代码块代码块:使用{ }定义的一段代码。可分为普通代码块、构造快、静态块、同步代码块。 (1)普通代码块:定义在方法中的代码块。(一般方法中代码过长,为避免变量的命名冲突,就使用普通代码块)class Test5{ public static void main(String[] 阅读全文
posted @ 2020-03-30 21:43 edda_huang 阅读(122) 评论(0) 推荐(0) 编辑
摘要:泛型一、引例 如创建个人信息类:包含String name、int age、double sorce;由于类型涵盖比较多我们不由会想起用Object类型来保存所有的类型。class Information{ private Object name; private Object age; priva 阅读全文
posted @ 2020-03-30 21:23 edda_huang 阅读(137) 评论(0) 推荐(0) 编辑
摘要:Java中特殊的类——包装类包装类就是将基本数据类型封装在类中。1、包装类(1)自定义包装类将基本数据类型包装成一个类对象的本质就是使用Object进行接收处理。此时IntDemo类就是int的包装类,利用intValue 可实现基本数据类型转化为对象的需求。//自定义int包装类class Int 阅读全文
posted @ 2020-03-30 21:15 edda_huang 阅读(287) 评论(0) 推荐(0) 编辑
摘要:1、Map集合Collection集合的特点是每次进行单个对象的保存,若要对一对对象来进行保存就只能用Map集合来保存。即Map集合中一次可以保存两个对象,且这两个对象的关系是key = value结构。这种结构最大的好处就是可以利用已知的key值找到对应的value值。Map接口的定义:publi 阅读全文
posted @ 2020-03-30 21:10 edda_huang 阅读(434) 评论(0) 推荐(0) 编辑
摘要:主要针对Java堆和方法区1、判断对象是否已“死”Java堆中存放着几乎所有的对象实例,垃圾回收器在对堆进行回收之前,首先应该判断这些对象哪些还“存活”,哪些已经“死亡”。(1)引用计数法A. 工作流程 给每个对象附加一个计数器,每当有一个地方引用此对象。计数器+1;每当有一个地方不再引用此对象,计 阅读全文
posted @ 2020-03-30 21:08 edda_huang 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1、对象优先在Eden区分配大多数情况下,对象在新生代Eden区分配。当Eden区没有足够的空间进行分配时,虚拟机将发起一次Minor GC。虚拟机提供了 XX:+PrintGCDetails这个收集器参数,告诉虚拟机在发生垃圾回收时打印内存回收日志。并且在进程退出时输出当前的内存各区域分配情况。  阅读全文
posted @ 2020-03-30 21:05 edda_huang 阅读(123) 评论(0) 推荐(0) 编辑
摘要:1、集合输出在之前我们利用了toString()及get()方法对集合进行了输出,其实那都不是集合的标准输出,集合输出有四种方式:Iterator、ListIterator、Enumeration、foreach。(1)Iterator(迭代输出)在jdk1.5之前,在Collection接口中就有 阅读全文
posted @ 2020-03-30 21:04 edda_huang 阅读(229) 评论(0) 推荐(0) 编辑
摘要:集合类Java类集我们知道数组最大的缺陷就是:长度固定。从jdk1.2开始为了解决数组长度固定的问题,就提供了动态对象数组实现框架——Java类集框架。Java集合类框架其实就是Java针对于数据结构的一种实现。Java类集的本质就是动态对象数组。在Java类集中提供有两个最为核心的接口:Colle 阅读全文
posted @ 2020-03-30 18:17 edda_huang 阅读(330) 评论(0) 推荐(0) 编辑
摘要:1、转换流转换流是将字节流变成字符流的流。OutputStreamWriter:将字节输出流转换成字符输出流。public class OutputStreamWriter extends Writer提供的构造方法: public OutputStreamWriter(OutputStream o 阅读全文
posted @ 2020-03-30 18:13 edda_huang 阅读(272) 评论(0) 推荐(0) 编辑
摘要:字节流与字符流File类不支持对文件内容进行相关的操作,所有若要处理文件的内容,则需要通过流操作模式来完成。 流的基本操作步骤:Step1:根据文件路径创建File类对象.Step2:根据字节流或字符流的子类实例化父类对象.Step3:进行数据的读取或写入操作.Step4:关闭流(Close()). 阅读全文
posted @ 2020-03-30 14:38 edda_huang 阅读(141) 评论(0) 推荐(0) 编辑
摘要:1、系统类对IO的支持在我们学习PriteWriter、PrintStream里面的方法print、println的时候是否观察到其与我们之前一直使用的系统输出很相似呢?其实我们使用的系统输出就是采用IO模式完成的。在System中定义了三个操作的常量:a、标准输出:(System.out) pub 阅读全文
posted @ 2020-03-30 14:35 edda_huang 阅读(266) 评论(0) 推荐(0) 编辑
摘要:1、File文件类File类(描述具体文件或文件夹的类):是唯一一个与文件本身操作有关的程序类,可完成文件的创建、删除、取得文件信息等操作。但不能对文件的内容进行修改。(1)File类的基本使用File类只用于创建文件文身并不对其内容做任何处理。Java.Io.File是一个普通的类,直接产生实例化 阅读全文
posted @ 2020-03-30 14:34 edda_huang 阅读(135) 评论(0) 推荐(0) 编辑
摘要:1. 类加载器Class类描述的是整个类的信息,在Class类中提供的方法getName()是根据ClassPath配置的路径来进行类加载的。若类加载的路径为文件、网络等时则必须进行类加载这是就需要用到ClassLoader类。ClassPath:加载类的路径。(1)ClassLoad:类加载器用来 阅读全文
posted @ 2020-03-30 14:04 edda_huang 阅读(161) 评论(0) 推荐(0) 编辑
摘要:我们之前所做的都是对文件进行IO处理,实则我们也可以对内存进行IO处理。我们将发生在内存中的IO处理称为内存流。内存操作流也可分为两类:字节内存流和字符内存流。 (1)ByteArrayInputStream 和 ByteArrayOutputStream构造函数:public class Byte 阅读全文
posted @ 2020-03-30 13:13 edda_huang 阅读(411) 评论(0) 推荐(0) 编辑
摘要:类和对象(1)1.面向对象的编程面向对象的三大特征:(1)封装:即把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类和对象对其进行操作;对不可信的类进行信息的隐藏。(内部操作对外部不可见)(2)继承:一种能力。可使用所有现有类的所有功能,且无需进行重新编写对功能进行扩展。(3)多态 阅读全文
posted @ 2020-03-30 12:53 edda_huang 阅读(180) 评论(0) 推荐(0) 编辑
摘要:最近在linux服务器上需要安装redis,来存放数据,增加用户访问数据的速度,由于是第一次安装,于是在百度上搜了一篇文章,按照这篇博客,顺利安装好了,因此将博主的文章拷过来记录一下,方便以后使用,也为需要的朋友提供一个方便, 参考博文地址:https://www.cnblogs.com/lauhp 阅读全文
posted @ 2020-03-30 12:50 edda_huang 阅读(145) 评论(0) 推荐(0) 编辑
摘要:以下内容转载自http://blog.csdn.net/bruce0532/article/details/7842384 vi编辑器是所有Unix及Linux系统下标准的编辑器,介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介 阅读全文
posted @ 2020-03-30 11:57 edda_huang 阅读(288) 评论(0) 推荐(0) 编辑
摘要:本文是转载自:https://www.cnblogs.com/wxjnew/p/9160855.html 除了原文的东西还有自己遇到的一些问题,这里记录一下。 一、下载: 下载地址: https://github.com/MicrosoftArchive/redis/releases 根据系统下载的 阅读全文
posted @ 2020-03-30 10:57 edda_huang 阅读(266) 评论(0) 推荐(0) 编辑
摘要:守护线程与普通线程的唯一区别是:当JVM中所有的线程都是守护线程的时候,JVM就可以退出了;如果还有一个或以上的非守护线程则不会退出。(以上是针对正常退出,调用System.exit则必定会退出) 所以setDeamon(true)的唯一意义就是告诉JVM不需要等待它退出,让JVM喜欢什么退出就退出 阅读全文
posted @ 2020-03-29 23:14 edda_huang 阅读(398) 评论(0) 推荐(0) 编辑
摘要:Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方 阅读全文
posted @ 2020-03-29 22:53 edda_huang 阅读(257) 评论(0) 推荐(0) 编辑
摘要:接口 LinkList.java package Struct; public interface LinkList {//判断链表为空public boolean linkListIsEmpty();//头插public void linkListPushFront(int value);//头删 阅读全文
posted @ 2020-03-29 21:57 edda_huang 阅读(95) 评论(0) 推荐(0) 编辑
摘要:双向链表 链表是是一种重要的数据结构,有单链表和双向链表之分;本文我将重点阐述不带头结点的双向链表: 不带头结点的带链表 我将对双链表的增加和删除元素操作进行如下解析 1.增加元素(采用尾插法) (1)链表为空 新建结点,将头结点first和尾节点last都指向新建结点,尾节点的next指向空。 空 阅读全文
posted @ 2020-03-29 21:53 edda_huang 阅读(481) 评论(0) 推荐(0) 编辑
摘要://所提供的接口 LinkList.java package Struct; public interface LinkList {//判断链表为空public boolean linkListIsEmpty();//尾插public void linkListPushBack(Object obj 阅读全文
posted @ 2020-03-29 21:37 edda_huang 阅读(259) 评论(0) 推荐(0) 编辑
摘要:1 package struct; 2 3 interface Tree{ 4 //插入元素 5 void insert(int value); 6 //中序遍历 7 void inOrder(); 8 //先序遍历 9 void perOrder(); 10 //后序遍历 11 void post 阅读全文
posted @ 2020-03-29 21:34 edda_huang 阅读(173) 评论(0) 推荐(0) 编辑
摘要:1 package struct; 2 3 /** 4 * 5 * @作者:dyy 6 * @公司:陕西科技大学 7 * @修改日期: 8 * @邮箱:1101632375@qq.com 9 * @描述:Java实现几种常见排序 10 */ 11 12 13 //选择排序类 14 class Sel 阅读全文
posted @ 2020-03-29 21:32 edda_huang 阅读(115) 评论(0) 推荐(0) 编辑
摘要:1 package struct; 2 3 4 //接口 5 interface IArrayStack{ 6 //栈的容量 7 int length(); 8 //栈中元素个数(栈大小) 9 int size(); 10 //取栈顶元素 11 Object top(); 12 //判断栈是否为空 阅读全文
posted @ 2020-03-29 21:31 edda_huang 阅读(320) 评论(0) 推荐(0) 编辑
摘要:1 package struct; 2 3 //接口 4 interface ILinkStack{ 5 //栈中元素个数(栈大小) 6 int size(); 7 //取栈顶元素 8 Object top(); 9 //判断栈是否为空 10 boolean isEmpty(); 11 //入栈 1 阅读全文
posted @ 2020-03-29 21:29 edda_huang 阅读(255) 评论(0) 推荐(0) 编辑
摘要:1 package struct; 2 3 interface IQueue{ 4 //入队列 5 void add(Object obj); 6 //出队列 7 Object remove(); 8 //队列中元素个数(栈大小) 9 int size(); 10 //判断队列是否为空 11 boo 阅读全文
posted @ 2020-03-29 21:26 edda_huang 阅读(138) 评论(0) 推荐(0) 编辑
摘要:一、概念 虚拟机:通过软件模拟的具有完整硬件功能的运行在一个完全隔离环境中的完整操作系统。 JVM:软件虚拟Java字节码指令集。 HoSpot是Java默认的虚拟机。 二、Java内存区域与内存溢出异常 Java虚拟机所管理的内存包括如下几个运行时数据区域: (1)线程私有区域(随线程的创建与销毁 阅读全文
posted @ 2020-03-29 21:23 edda_huang 阅读(129) 评论(0) 推荐(0) 编辑
摘要:排序 1.定义: 所谓排序,即是整理文件中的内容,使其按照关键字递增或递减的顺序进行排列。 输入:n个记录,n1,n2……,其对应1的关键字为k1,k2…… 输出:n(i1),n(i2)……,使得k(i1)<=k(i2)…… (形象点讲就是排排坐,调座位,高在前低在后;或者低在前高在后) 2.排序算 阅读全文
posted @ 2020-03-29 20:54 edda_huang 阅读(243) 评论(0) 推荐(0) 编辑
摘要:线性表 线性表:n(n>=0)个数据元素组成的一个有限序列,可以在任意位置进行插入和删除操作的线性数据结构。 从数据在物理内存存储形式上线性表可分为:顺序表和链表 从上图可以看出: 线性表中数据与数据之间存在一对一的关系,即除第一个元素和最后一个元素外,每个元素都有唯一的直接前驱和唯一的直接后继,第 阅读全文
posted @ 2020-03-28 15:02 edda_huang 阅读(349) 评论(0) 推荐(0) 编辑
摘要:InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了 1、事务和外键 InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用I 阅读全文
posted @ 2020-03-27 21:36 edda_huang 阅读(347) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示