java
北漂人生
追逐梦想,勇往直前,即使头破血流也在所不惜!
展开
-
关于jvm的一些面试题的整理,希望对你的面试有一定的帮助
1、JVN内存结构方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(Heap),是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 方法区(Method Area),方法区(Method Area)与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量...转载 2020-06-30 15:42:54 · 188 阅读 · 0 评论 -
java多线程——我修改的时候,请不要进行读操作!
使用到的java主要知识点Interface ReadWriteLock 所有已知实现类: ReentrantReadWriteLock A ReadWriteLock维护一对关联的locks ,一个用于只读操作,一个用于写入。 read lock可以由多个阅读器线程同时进行,只要没有作者。 write lock是独家的。方法详细信息:具体示例需求:实现一个自定义价格的功能,定价是独占的,读取价格是共享的。价格信息类public class PricesInfo原创 2020-06-30 10:31:02 · 190 阅读 · 0 评论 -
Springmvc其实没有想象中的那么难,咱自己也来写一个!
背景 编码一年多,接触的项目每个都用到springmvc,只会用,而不知其原理。今日咱就把它弄清楚了!原本以为会有很多代码好多类,但其实源码很少。开动通过写一个自己的springmvc,来深化自己对其的了解。首先展示下代码结构:然后我们一个个来看!首先都是一些springmvc的注解类:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface...原创 2020-06-28 11:11:17 · 632 阅读 · 2 评论 -
有像我一样上班休闲,从不加班的程序员吗?
前言本人18年毕业,二本本科网络工程毕业,目前是工作以来的第二份工作,于2019年八月底入职。工作前夕 哎,外包行业无论多么被人瞧不起,但还是不少程序员趋之若鹜,毕竟不是谁都有进大厂的机会。我也是那外包大军中的一员,外包在某寿,公司也是大公司,工作环境很不错。刚进来的时候说的是后台管理系统的一个集中认证的项目,就是现有的一个,已经做了快一年了。项目成员人不多,算上我四个,一个经理,三个开发,开发测试部署都自己完成,需要的各种部署环境找甲方公司要。刚来,下载项目,项目技术也...原创 2020-06-15 15:14:27 · 7268 阅读 · 13 评论 -
java并发之生产消费模型,Condition和独占锁ReentrantLock的运用
一 1.ReentrantLock简介一个可重入互斥Lock具有与使用synchronized方法和语句访问的隐式监视锁相同的基本行为和语义,但具有扩展功能。 A ReentrantLock由线程拥有 ,最后成功锁定,但尚未解锁。 调用lock的线程将返回,成功获取锁,当锁不是由另一个线程拥有。 如果当前线程已经拥有该锁,该方法将立即返回。 这可以使用方法isHeldByCurrentThread()和getHoldCount()进行检查。2.主要用到的方法(1)lock()获得锁(2)u.原创 2020-06-12 14:40:23 · 260 阅读 · 0 评论 -
java并发之CountDownLatch和CyclicBarrier的运用
1.定义 允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。2.主要方法(1)构造方法 CountDownLatch(intcount) 构造一个以给定计数 CountDownLatch CountDownLatch。 构造一个以给定计数 CountDownLatch CountDownLatch。 参数count -的次数 countDown()必须调用之前线程可以通过 await() ...原创 2020-06-11 09:56:38 · 219 阅读 · 0 评论 -
java设计模式之桥接模式
一、bridge模式 需求 为不同款的手机设置相同的功能。 代码实现 手机功能抽象类:public abstract class HandSetSoft { public abstract void run();}手机品牌抽象类:public abstract class HandSetBrand { private HandS...原创 2019-11-25 11:00:42 · 244 阅读 · 0 评论 -
java设计模式之迭代器模式
一、定义提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。二、代码实例 需求 自己写一个iterator迭代器,遍历list。 代码实现 迭代器接口:public interface Iterator { public Object first(); public Object next(); publi...原创 2019-11-11 14:58:10 · 145 阅读 · 0 评论 -
java设计模式之单例模式
一、定义 保证一个类仅有一个实例,并提供一个可以访问它的全局访问点。二、单例目前分类 1.饿汉模式 很好理解,饿汉就是十分着急要吃的,也就是迫切的创建对象,程序一加载就创建好了对象,等着被使用。可以想象当程序一旦加载,会有着大量单例对象被创建,等待被使用,如果没有用到的话,将是一种资源的浪费,所以饿汉模式必须确定该对象会被使用。...原创 2019-11-05 09:57:20 · 112 阅读 · 0 评论 -
java设计模式之组合模式
一、定义形成树状的层次管理结构图,并且每个节点都具有相同的功能。将对象组合成树形结构以表示部分-整体的的层次结构。组合模式是的用户对单个对象和组合对象的使用具有一致性。二、代码实例 需求 在大公司建立管理系统,旗下有多个分公司,都需要建立同样的管理系统,需要在有层级关系的情况下,对管理系统的代码进行复用。 代码实现 ...原创 2019-11-05 09:36:34 · 123 阅读 · 0 评论 -
java设计模式之备忘录模式
一、定义 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复原先保存的状态。二、代码实例 需求 大家应该都玩过游戏,也知道其中的保存进度功能,随时可以切回之前的状态,现在我们就用java代码实现此功能。 代码实现 游戏角色类:public class GameRole { ...原创 2019-11-05 09:31:26 · 82 阅读 · 0 评论 -
初级程序员闲暇之余,应该如何提升自我?
文章摘要: 博主作为一个刚毕业一年的程序员,刚毕业荣幸的进了一个技术很新,规模很大的项目组,虽然工资不高,但是学到了不少。算是初步踏入程序员这个职业了吧。在这一年期间,闲暇之余,疯狂的浏览技术博客,阅读技术文章,读java底层源码,学习新的框架技术。将近一年了,虽然提升了,知道了这些知识要点,但是感觉还是缺了一点什么。纸上得来终觉浅,觉知此事要躬行。一段时间的迷茫期,博主整理了一下自己...原创 2019-11-01 11:04:03 · 483 阅读 · 0 评论 -
你真的了解java的字符串String么?
一、定义 public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变...原创 2019-10-24 10:32:10 · 129 阅读 · 0 评论 -
java设计模式之适配器模式
一、定义适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、代码示例 需求 姚明初次来到外国,不会说英文,听不懂英文,但是他应该如何和队友或者教练交流呢?答案很明显,需要一个第三者翻译来传达。这也符合我们的设计模式中的适配器模式。 代码实现 抽象运动员:pub...原创 2019-10-18 14:12:55 · 93 阅读 · 0 评论 -
java设计模式之状态模式
一、定义 当一个对象内部状态改变时,允许改变其行为,这个对象看起来是改变了其类。本例子中,根据时间的变化,工作状态在不断地改变。如果现在增加一个工作完成,提前下班的规定只需要增加实现类即可。二、代码实例 需求 根据不同时间,描述不同的工作状态。代码要求扩展性强,符合设计原则。 代码实现 工作类:public class Work { ...原创 2019-10-12 09:38:07 · 87 阅读 · 0 评论 -
java设计模式之代理模式
java学习-设计模式一、简介 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。二、代理模式-替人送礼物 需求 小明通过小张给他们班里的班花小美送礼物,追求她。 代码实现 送礼物接口类:public interface GiveGift { void giveDoll(); void giveFlower();...原创 2019-09-23 09:15:42 · 112 阅读 · 0 评论 -
java设计模式之装饰模式
一 简介 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。二 具体实例1.要求 实现一个人的任意打扮方式,可以任意顺序,任意方式进行组合。2.实现代码person类:人物父类public classPerson {private String name;...原创 2019-09-20 09:30:29 · 109 阅读 · 0 评论 -
java设计模式之工厂方法模式
工厂方法模式-学雷锋做好事在写代码之前,先说一下我们设计模式中的两大原则,即单一职责原则和开放-封闭原则。单一职责原则,不难理解,我相信好多人也都在用。就是单个类只负责一项功能的实现,例如前面我们的加法类,减法类等。至于好处,我想不用我多说,代码的易扩展已维护性很容易体现。开放-封闭原则可能不去了解设计模式的人不是太清楚,其实也很好理解,...原创 2019-09-19 09:29:59 · 91 阅读 · 0 评论 -
java设计模式之策略模式
一 简介 定义一组算法,将每个算法都封装起来,使得它们之间可以相互替换。策略模式让算法独立于调用它的客户端而独立变化。定义可能很抽象,不懂不要紧,写个demo立马懂。二 策略模式之商场促销的实现 要求已知原价和促销类型,然后根据程序得出促销后的结果。如满300减100或者打X折等。代码要可维护,可扩展,可复用,灵活性高。任意增加其他促销方式,不会影响到客户端...原创 2019-09-18 09:17:18 · 152 阅读 · 0 评论 -
java设计模式之简单工厂模式
一 简介 简单工厂模式属于工厂模式的一种,工厂模式总共有三种,分别是简单工厂模式,工厂方法模式和抽象工厂模式。二 以下以一个简单的例子介绍一下简单工厂模式-计算机的实现算法工厂类:通过传入不同的值,创建不同的算法对象public class OperationFactory { public static Operation createOpera...原创 2019-09-17 15:29:33 · 93 阅读 · 0 评论 -
java设计模式之原型模式
一 简介 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。二 实例代码 需求 完成简历的复制。 代码实现 简历类:被copy的类,需要实现Cloneable接口package com.ct.prototype;public class Resume implements Cloneable { private Str...原创 2019-09-25 09:19:04 · 128 阅读 · 0 评论 -
java设计模式之外观模式
一 简介 为子系统的一组接口提供一个一致的界面,此模式定义了高层接口,改接口使得这个子系统更加容易使用。二 实例代码-买股票怎样不会亏钱? 需求 用户通过基金买股票,无需知道具体购买股票的诸多细节。 代码实现 基金类:public class Found { private Stock1 stock1; private Stock2...原创 2019-09-26 09:12:18 · 88 阅读 · 0 评论 -
java设计模式之建造者模式
java学习-设计模式-builder模式一 简介 使得一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。二 代码实例-制作汉堡包 需求 按照约定好的流程制作不同的汉堡包 代码实现 汉堡制作接口类: 包含一些制作汉堡的流程的接口public abstract class HamburgerCreation { publ...原创 2019-09-27 09:23:50 · 110 阅读 · 0 评论 -
java设计模式之观察者模式模式
java学习-设计模式-observer模式一 定义 观察者模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。二 代码实例 需求 前台帮忙盯着老板的到来,然后通知所要通知的人,开始认真工作 代码实现 主题抽象类:public abstract class Subject { privat...原创 2019-10-09 09:55:19 · 101 阅读 · 0 评论 -
java学习-设计模式之抽象工厂模式
java学习-设计模式-抽象工厂模式一 定义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。二 代码实例 需求 对于不同的数据库和不同的表,如mysql,oracle都能够简单的就可以实现查询更新操作。换数据库是,无需改动太多的代码。 代码实现 部门类:public class Dept { private ...原创 2019-10-10 09:11:23 · 88 阅读 · 0 评论 -
手写一个简单的栈,队列和单向链表
博主最近换了家新公司,刚进去很是清闲,IT这行业发展太迅速,没事干就得学习,不断学习,看过了许多源码之后,开始自己写一些简单的java源码,巩固一下自己的记忆。先从一些简单的数据结构开始!一 数组实现栈结构public class MyStack { private long[] a; private int size;//栈数组大小 private ...原创 2019-10-10 10:05:32 · 216 阅读 · 0 评论 -
java设计模式之模板方法模式
JAVA学习-设计模式一、简介 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二、抄卷纸写答案 需求,将卷纸作为模板,每个人的卷纸都相同,只有答案唯一不同。 代码实现 模板卷纸类:public abstract class TestPaper { public voi...原创 2019-09-24 09:11:30 · 134 阅读 · 0 评论