杂记
文章平均质量分 64
人山人海肉最可爱
目前菜鸟一枚,希望大佬们多多指教,渴望有一天可以和大佬们肩并肩。
展开
-
数据结构~数据结构绪论
数据结构是一门研究非数值运算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符合集合。数据不仅包括整型.实型等数据类型,还包括字符及声音.图像.视频等非数值类型。这些数据必须具备两个前提:可以输原创 2017-08-21 16:20:22 · 328 阅读 · 0 评论 -
Java----抽象类
什么是抽象类?抽象类只是在普通类的基础上扩充了一些抽象方法而已。用abstract来定义。抽象方法:指的是只声明而为实现的方法(没有方法体)。也是用abstract来定义。为什么会存在抽象类呢?那是因为继承不能强制让子类覆写父类的所有方法,而抽象类可以。例:package www.java.test;abstract class Person{ private String...原创 2019-01-14 20:31:05 · 133 阅读 · 0 评论 -
Java-----模板设计模式
模板设计模式是基于抽象类的,它的核心是封装算法我们可以先用代码实现泡茶和冲咖啡的过程:泡茶的步骤:将水煮沸用沸水浸泡茶叶把茶倒进杯子加柠檬冲咖啡的步骤:5. 将水煮沸6. 用沸水冲泡咖啡7. 将咖啡倒进杯子8. 加糖和牛奶代码实现:package www.java.test;class Coffe{ //咖啡的冲泡方法 void prepareRe...原创 2019-01-14 21:42:01 · 211 阅读 · 0 评论 -
Java----剖析代码块
阿里巴巴笔试题原创 2019-01-15 18:04:41 · 191 阅读 · 0 评论 -
Java中的接口
在Java中有一个接口优先原则(在一个操作即可以使用抽象类又可以使用接口的时候,优先考虑使用接口)为什么会有接口优先原则呢?主要是因为抽象类局限于单继承原则,而接口可以实现多继承,子类实现接口使用implements关键字,子类可以同时实现多个父接口。什么是接口呢?接口就是一个抽象方法与全局常量的集合(JDK8之前)接口使用interface关键字定义例:定义一个简单的接口inter...原创 2019-01-16 09:54:57 · 266 阅读 · 0 评论 -
Java中的工厂设计模式
引出工厂模式package www.java.test;interface Computer{ void printComputer();}class MacbookPro implements Computer{ @Override public void printComputer() { System.out.println("This i...原创 2019-01-16 11:29:09 · 3628 阅读 · 0 评论 -
Java中的代理模式
代理模式的特点:两个子类共同实现一个接口,其中一个子类负责真实业务实现,另一个子类完成辅助真实业务主题的操作。代理模式其实在我们生活中特别常见,特别是近些年来,大家都喜欢用国外的东西,但又特别贵,特别是女生的化妆品,它贵主要是因为有税和运费,所以大家都喜欢去找代购买化妆品,可以剩下好多钱。在这个模式中,真实的主题类是你自己,因为掏钱和使用的是你,而代购就是代理类,它只是负责辅助你完成买化妆品这...原创 2019-01-16 14:30:12 · 3759 阅读 · 2 评论 -
抽象类与接口的区别
原创 2019-01-16 14:43:31 · 96 阅读 · 0 评论 -
ReentrantLock----独占式重入锁的深入理解
ReentrantLock是重入锁重入:表示能够对共享资源重复加锁,即当前线程再次获取锁时不会被阻塞。1. 那重入锁是如何实现的呢?如果该同步状态不为0,表示此时同步状态已被线程获取。再判断持有同步状态的线程是否是当前线程,如果是,同步状态再次+1并返回true,表示持有线程重入同步块。释放过程:当且仅当同步状态减为0并且持有线程为当前线程时表示锁被正确释放。否则调用setState(...原创 2019-02-28 12:22:46 · 216 阅读 · 0 评论 -
ReentrantReadWriteLock----可重入读写锁
读写锁:允许同一时刻被多个读线程访问,但是在写线程访问时,所有的读线程与其他的写线程均会阻塞。写线程能够获取到锁的前提条件:没有任何读、写线程拿到锁。1. 写锁-WriteLock-独占锁1.1 写锁的获取 - 模板方法tryAcquire()源码:protected final boolean tryAcquire(int acquires) { /* ...原创 2019-02-28 13:27:29 · 270 阅读 · 0 评论 -
Condition接口的await、signal机制
1. Condition中的await、signal与内建锁wait、notify的区别Object类提供的wait与notify方法是与对象监视器monitor配合完成线程的等待与通知机制,属于JVM底层实现。而Cobdition与Lock配合完成的等待通知机制属于java语言级别,具有更高的控制与扩展性。Condition独有特性:I.支持不响应中断,而Object不支持II.支...原创 2019-02-28 17:22:53 · 554 阅读 · 0 评论 -
lock体系
之前本来在写完多线程之后就写lock体系的,可以作以对比,但之后又写了其他知识的博客,一直拖到今天才写lock相关的知识,大家在看lock锁的时候,可以对比着看内建锁,对比对比lock锁和内建锁的优缺点。这是我那篇关于内建锁的博客链接:https://blog.csdn.net/huaijiu123/article/details/85242821lock在Java的util包下lock体系...原创 2019-02-25 13:41:40 · 358 阅读 · 0 评论 -
JAVA中---生产者与消费者模型
1.Wait()—痴汉方法wait()就是使线程停止运行,会释放对象锁。wait()方法会使当前线程调用该方法后进行等待,并且将该线程置入锁对象的等待队列中,直到接到通知或被中断为止。wait()方法只能在同步方法或同步代码块中调用,如果调用wait()时没有适当的锁,会抛出异常。wait()方法执行后,当前线程释放锁,其他线程可以竞争该锁。例:package www.java.t...原创 2019-01-12 18:08:06 · 192 阅读 · 0 评论 -
多线程-----同步与死锁
1. 同步问题我们先来看一个同步问题的例子:package www.java.test;class MyThread implements Runnable{ private int ticket = 10; @Override public void run() { while(this.ticket > 0){ tr...原创 2019-01-11 15:46:05 · 257 阅读 · 1 评论 -
数据结构~算法
算法:算法是解决特定问题求解步骤的描述,在计算中表现为指令的有限序列,并且每条指令表示一个或多个操作。数据结构与算法到底有什么关系呢?如果只谈数据结构,当然是可以的,我们可以在很短的时间就把几种重要的数据结构介绍完。听完后,很可能你没什么感觉,不知道这些数据结构有何用处。但如果我们在把相应的算法也拿来讲一讲,你就会发现,甚至开始感慨:哦,计算机界的前辈们,的确是一些很牛很牛的人原创 2017-08-22 12:59:17 · 483 阅读 · 0 评论 -
一个小菜鸟的博客正式开始之路
Hello,大家好,时隔这么久,我又回来了,好久都没来写博客了,真的好后悔没有坚持下来(因为自己比较懒,前段时间课比较多,每天上完课就不想动了,放假后,也彻底颓废了),不过没关系,从今天开始,我决定以后坚持写博客,来督促自己学习,并提高自己文章的水平,希望各位大佬可以多多指教。 这么久了好像还没做过自我介绍呢,今天就先自我介绍一下吧,我是一名女程序猿,今年大二了,是一名本科生...原创 2018-03-14 23:00:18 · 249 阅读 · 2 评论 -
编程心得----如何编程
通过刚刚做的括号匹配问题,我发现我学了这门课程已经两年了,今天好像才入门,刚开始学数据结构这门课程的时候,发现代码好难写,当然因为发现难,所以也就没怎么写,现在又重新开始学习这门课了。我发现其实语言并不难,难的只是一个问题的分析过程,只要我们把这个问题分析清楚了,用语言把这个过程翻译过来就行,所以有的小可爱在看一个问题的时候,千万不要直接上手写代码,一定要把过程分析清楚,这样就很容易就把这个代...原创 2018-08-18 11:35:47 · 1600 阅读 · 1 评论 -
Linux编辑器-vim使用教程
1.vim的基本概念vim有好多模式,目前我们掌握3中即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode插入模式(Inser...原创 2018-10-13 13:40:35 · 190 阅读 · 0 评论 -
简单vim配置
root用户下:vim /etc/vimrc,进入vimrc,按i,进入插入模式,到最后一行set nu ------ 显示行号set sw = 4 ----- 缩进长度set ai ------ 自动对齐然后回车按i,把光标移动到最后一行,输入下边图中,红色框出来的几行输入完成后,按【ESC】,再按【:】,再按【wq】保存并退出...原创 2018-10-13 13:55:13 · 216 阅读 · 0 评论 -
Java中final关键字
在Java中final被称为终结器,可以用来修饰类(包括String类以及8大基本数据类型的包装类,Integer)。final修饰类当一个类被final修饰,表示该类不能拥有子类(该类不允许被继承)。一旦一个类被final修饰,该类的所有方法都会默认加上final(成员变量不会加final)。final class A{}; //A类不能有子类final修饰方法当一个方法被fin...原创 2018-10-19 10:41:37 · 152 阅读 · 0 评论 -
Java中super关键字
super用于方法用于构造方法当子类调用父类无参构造时,super()可写可不写,表示调用父类无参构造当子类调用父类有参构造时,super(参数列表)必须要写,要告诉编译器当前调用的是哪个有参构造。子类构造方法中调用父类构造必须是第一行语句this与super不能同时调用用于普通方法------super.方法名(参数)用于在子类中明确调用父类被覆写的方法...原创 2018-10-19 10:51:01 · 713 阅读 · 0 评论 -
内部类的定义与使用
基本概念:就是在一个类内部进行其他类结构嵌套操作。内部类的优点内部类与外部类可以方便地访问彼此的私有域(包含私有方法、私有属性)。eg:class Outer{ private String msg = "Hello World"; //内部类 //-------------------------------- class Inner{ ...原创 2018-10-20 21:53:40 · 874 阅读 · 0 评论 -
JAVA数据类型划分
java总共有8大基本数据类型:数据类型的默认值需要结合类来观察,主方法中,变量必须先赋值再使用,不存在默认值例:我们会发现通过创建Test类对象,然后调用a属性,它的默认值是0.如果把a放到主函数中,没有对它进行初始化,输出它,就会报错。...原创 2018-11-05 09:34:21 · 172 阅读 · 0 评论 -
JAVA数组----引用数据类型
1.数组初始化1.1 动态初始化(声明并开辟空间)数组类型[] 数组名称 = new 数组类型[长度]例:开辟一个长度为5的字符型数组:char[] arr = new char[5];数组是通过下标索引来取得元素,下标默认从0开始,数组下标超过数组长度就会发生数组越界异常(属于运行时异常)。数组中每个元素都有默认值,默认值是该数组的类型默认值数组名称.length:取得数组长度...原创 2018-11-27 18:36:19 · 1577 阅读 · 1 评论 -
反射
在说反射之前,我们先来思考一个具有争议的问题:Java到底是不是纯面向对象语言?那如何判断呢?只要Java中的元素能够被类所描述、能够通过实例化获取到对象,就说这是面向对象的。因为Java中的8大基本数据类型是不能实例化对象的,比如:int a = 8;我们是不能通过a调用一个方法的,所以会有人说Java不是纯面向对象的语言。但其实Java就是一个纯面向对象的语言,因为基本类型它又有包装类...原创 2019-03-05 09:53:45 · 190 阅读 · 0 评论