
java
文章平均质量分 55
灯盏菜
上火你就喝灯盏菜啊
展开
-
【Java基础】理解Java虚拟机-运行时数据区
JVM运行时数据区堆方法区虚拟机栈程序计算器本地方法栈运⾏时栈帧结构局部变量表操作栈动态链接返回地址原创 2021-01-09 17:38:33 · 286 阅读 · 0 评论 -
【Java基础】 内部类 基础知识结构
成员内部类局部内部类匿名内部类静态内部类为什么局部内部类和匿名内部类只能访问局部final变量?原创 2021-01-09 17:22:43 · 187 阅读 · 0 评论 -
【面试基础复习】github -Java基础
Java基础https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md一、数据类型 :基本类型 ,包装类型 ,缓存池二、string :不可变的好处 ,string stringbuffer stringbuilder 区别 ,string pool ,newstring("abc")三、运算 :参数传递 ,flot double ,隐式类型转换 ,switch四、关键...转载 2020-09-27 22:47:15 · 278 阅读 · 0 评论 -
笔试题
【1】hello world(10分)描述:判断从一个字符串中是否能抓取出helloworld,可以不连续但是一定要保持顺序。如helllllllo wwwwwwworld 但不能是helolllllworld。 public static boolean isHelloWorld(String text) { char[] word1=text.toCharArray()...原创 2019-04-16 15:10:31 · 235 阅读 · 2 评论 -
【面试】JAVA 多线程并发(上)
1.JAVA 线程实现/创建方式 1.1继承 Thread 类Thread类实质上是实现了Runnable接口的一个实例,代表一个线程的实例,启动的方法通过Thread类的start()方法,start()方法是一个native()方法,它将启动一个新的线程,并执行run()方法。public class MyThread extends Thread { pub...原创 2019-04-12 12:40:33 · 199 阅读 · 0 评论 -
【面试】遍历HashMap的方法以及性能比较
JDK8之前,可以使用keySet或者entrySet来遍历HashMap,JDK8中引入了map.foreach来进行遍历。原因:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。...原创 2019-04-08 22:29:24 · 244 阅读 · 0 评论 -
【面试】 HashMap ,HashTable ,ConcurrentHashMap 的区别
HashMap底层实现:数组+链表 ,可以存储null键和null值,线程不安全。 初始size容量 16 ,扩容: newsize = oldsize * 2, size一定是2的n次幂。 扩容针对整个Map,每次扩容时,数据结构就发生变化,原来的数组中的元素依次重新计算位置,并重新排序。 插入元素后才判断该不该扩容,有可能无效扩容(插入后再扩容,如果没有再插入,就会产生...转载 2019-04-12 00:10:43 · 153 阅读 · 0 评论 -
Java 开发 设计模式 ----行为型模式【策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式】
创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。结构型模式:把类或对象结合在一起形成一个更大的结构。行为型模式:类和对象如何交互,及划分责任和算法。行为型模式第一类:通过父类与子类的关系进行实现。第二类:两个类之间。第三类:类的状态。第四类:通过中间类策略模式(strategy)定义一系列算法,把他们封装起来,并且使它们可以相互替换。策...转载 2019-04-21 17:52:59 · 230 阅读 · 0 评论 -
【面试】消息中间件 Rabbit MQ
1、为什么使用RabbitMQ? RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的,消息中间件;优点流量削峰,高并发缓存 消息缓冲 消息分发 应用解耦(系统拆分,分布式解耦) 异步处理(预约挂号业务处理成功后,异步发送短信、推送消息、日志记录等)缺点系统可用性降低(MQ中间件突然挂掉) 系统稳定性降低(消息丢失) 分布式一致性问题...转载 2019-04-14 17:08:06 · 450 阅读 · 0 评论 -
Java 开发 设计模式 ----创建型模式【单例模式,工厂模式,建造者模式,原型模式】
1、单例模式(Singleton)基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。懒汉式public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */ private static Singleton instance = null; /* 私有构造方法...转载 2019-04-22 11:29:42 · 437 阅读 · 1 评论 -
Java 开发 设计模式 ----结构型模式【 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式】
1、适配器模式(Adapter)适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电脑...转载 2019-04-22 12:00:46 · 292 阅读 · 0 评论 -
【面试】为什么要重写hashcode和equals方法?
1、通过Hash算法来了解HashMap对象的高效性先复习数据结构里的一个知识点:在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。我们再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找次数接...转载 2019-04-19 23:35:39 · 1070 阅读 · 1 评论 -
Java 开发 设计模式 ----策略模式strategy
策略模式 strategy策略模式 strategy 定义了一系列算法,并将每个算法封装起来,使得他们可以相互转化,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(辅助类)。ICalculator提供统一的方法。AbstractCalculator是辅助类,提供辅助方法,接下来,依次实现下每个类:首先...原创 2019-04-20 13:57:49 · 273 阅读 · 0 评论 -
Spring 3.x 装配 Java bean的三种方式
项目结构 ,其他的具体文件就不展开介绍了。一、基于XML的配置方式1、xml文件的bean声明<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2...转载 2019-07-14 19:41:34 · 189 阅读 · 0 评论 -
【SpringBoot】手写一个简单的SpringBoot-starter
starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。虽然不同的starter实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties和AutoConfiguration。Starters are a set of convenient dependency descriptors that yo...转载 2019-07-28 13:55:22 · 3311 阅读 · 0 评论 -
【面试】Mybatis常见面试题总结(收集于网络)
1、什么是Mybatis?mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发只需关注SQL语句本身,不需要花费时间去处理加载驱动,创建连接,创建statement对象等繁琐过程。直接编写原生态SQL,执行。 mybatis可以使用XML或者注解的形式来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 通...原创 2019-04-08 18:55:09 · 2431 阅读 · 7 评论 -
Java 8 新特性
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。更多的新特性可以参阅官网:What's New in JDK 81、Lambda 表达式− Lambda允许把函数作为一个...原创 2019-04-11 18:56:42 · 141 阅读 · 0 评论 -
java 读写修改word (POI包) HWPFDocument读文件
poi jar包 的基本概念Java可用org.apache.poi包来操作word文档。org.apache.poi包可于官网上下载 在使用POI写word doc文件的时候我们必须要先有一个doc文件才行,因为我们在写doc文件的时候是通过HWPFDocument来写的,而HWPFDocument是要依附于一个doc文件的。所以通常的做法是我们先在硬盘上准备好一个内容空白的doc文...原创 2018-07-17 18:24:26 · 34595 阅读 · 0 评论 -
JS(JavaScript) new Date() IE浏览器 带参返回NaN【已解决】
情景: 数据库字段 data类型 (2018-07-09 17:15:51) 【 没有用SQL函数转换时间格式(也可以在SQL转换时间格式,或者在后台java代码转换,)】 在页面处理格式的时候只要显示 年月日(不用时分秒), 一般浏览器可以用js带参数转换,但是IE.....(https://www.jb51.net/article/123540.htm) ,...原创 2018-07-13 14:15:28 · 839 阅读 · 0 评论 -
form 表单上传 文件 ,form两种提交方式 ,springmvc 文件上传 ResponseEntity附件下载
前端 form 表单提交 ,注意:form 表单 上传文件 enctype="multipart/form-data" , method="POST" form 表单 两种方式提交 到后台两种路径<body> <form class="layui-form layui-form-pane" action="" name="fo原创 2018-08-09 18:09:57 · 627 阅读 · 0 评论 -
Spring松耦合实例
输出生成器的例子File : IOutputGenerator.java – 输出生成器接口package com.yiibai.output;public interface IOutputGenerator{ public void generateOutput();}File : CsvOutputGenerator.java – 一个CSV输出生成器用来实现IOut...转载 2018-09-10 10:44:56 · 223 阅读 · 1 评论 -
Spring JdbcTemplate+JdbcDaoSupport实例
1. 不使用JdbcTemplate示例如果不用JdbcTemplate,必须创建大量的冗余代码(创建连接,关闭连接,处理异常)中的所有DAO数据库的操作方法 - 插入,更新和删除。它的效率并不是很高,容易出错和乏味。private DataSource dataSource; public void setDataSource(DataSource dataSource) {...转载 2018-09-10 11:03:27 · 131 阅读 · 1 评论 -
JAVA虚拟机 JVM 详情 (转载笔记)
1. JVM生命周期启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者...转载 2018-12-23 14:01:06 · 174 阅读 · 0 评论 -
Java 开发 设计模式 总结详情(转载笔记)
一、设计模式的三个分类 创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。结构型模式:把类或对象结合在一起形成一个更大的结构。行为型模式:类和对象如何交互,及划分责任和算法。行为型模式:类和对象如何交互,及划分责任和算法。 二、设计模式的六大原则 1、开闭原则(Open Close Principle) 开闭原则就是说对扩展...转载 2018-12-23 14:12:48 · 152 阅读 · 0 评论 -
Java 开发 设计模式 ----工厂方法模式(Factory Method)
工厂方法模式(Factory Method)工厂方法模式分为三种:11、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图:举一个发送邮件和短信的例子。首先,创建二者的共同接口: public interface Sender { public void Send(); } 其次,创建实现类:...翻译 2018-12-23 14:28:29 · 194 阅读 · 0 评论 -
自己动手实现的 Spring IOC 和 AOP - 上篇 (转载笔记)
转载地址 2. 简单的 IOC 和 AOP 实现根据 xml 配置文件加载相关 bean 对 BeanPostProcessor 类型的 bean 提供支持 对 BeanFactoryAware 类型的 bean 提供支持 实现了基于 JDK 动态代理的 AOP 整合了 IOC 和 AOP,使得二者可很好的协同工作2.1 简单的 IOC最简单的 IOC 容器只需4步即可实现...转载 2019-01-17 09:26:29 · 363 阅读 · 0 评论 -
【面试】 servlet生命周期 --Java基础
J2EE基础知识Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示Servlet的生命周期包含了下面4个阶段:1.加载和实例化2.初始化3.请求处理4.服务终止(1)加载和实例化当Servlet容...原创 2019-03-26 15:08:59 · 157 阅读 · 0 评论 -
【面试】HTTP中post和get的区别 --Java面试题
1. get在浏览器回退时是无害的,而post会再次提交请求;2. get产生的url可以被添加到书签,而post不可以;3. get请求会被浏览器主动缓存,而post不会,除非手动设置;4. get请求只能进行url编码,而post支持多种编码方式;5. get请求参数会被完整保留在浏览器历史记录里,而post中的参数不会被保留;6. ge...转载 2019-03-26 15:23:31 · 633 阅读 · 0 评论 -
【面试】反射用到了哪些接口,哪些类?--Java基础知识
反射用到了哪些接口,哪些类?JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射就是把java类中的各种成分映射成一个个的Java对象接口和类:类:Class(Class 对象是在加载类时由 Java 虚拟机...原创 2019-03-27 18:48:31 · 1565 阅读 · 0 评论 -
Java从入门到放弃 --没放弃就写java程序员职业规划
网上很多这样的段子,表情包 : Java从入门到放弃,从入门到改行,从入门到出轨,,,最近看到一段话,很喜欢何炅说的一段话:想要得到,你就要学会付出,要付出还要坚持;如果你真的觉得很难,那你就放弃,如果你放弃了就不要抱怨。人生就是这样,世界是平衡的,每个人都是通过自己的努力去决定自己生活的样子。 最怕的就是我懵懵懂懂过了一年,这一年似乎没有改变,,,,,,翻...原创 2019-04-10 16:03:40 · 944 阅读 · 1 评论 -
【面试】Java static方法能否被重写或重载
“覆盖”只有在某方法是基类的接口的一部分时才会出现。即,必须能将一个对象向上转型为它的基本类型并调用相同的方法。class StaticSuper{ public static void staticGet() { System.out.println("StaticSuper staticGet"); } public void dynamicG...原创 2019-04-10 21:01:44 · 17303 阅读 · 3 评论 -
【面试】Java中sleep方法和wait方法的区别? --Java基础
Java中sleep方法和wait方法的区别最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。 wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围) 。 sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 。...原创 2019-03-28 09:39:32 · 191 阅读 · 0 评论 -
【面试】Java的OOP三特性 与抽象类
一、抽象类 抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象类的声明格式如下:public abstract class ClassName { abstract void...原创 2019-03-28 13:43:37 · 347 阅读 · 0 评论 -
【面试】Java泛型
1. 概述Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。2. 为什么要用泛型--解决编译时期的问题public class Gen...转载 2019-04-11 10:37:22 · 158 阅读 · 0 评论 -
入门认识---使用JSONObject生成和解析json
入门认识----JSONObject 转载 https://www.cnblogs.com/joahyau/p/6736637.html1、使用JSONObject生成和解析json类型描述Number数字型String字符串型Boolean布尔型Array数组Object对象null空值(1)json中不区分整数、小数等类型,而统一使用Number来存储数字。(2)Array表示数组,以中括号"...转载 2018-03-11 21:13:09 · 778 阅读 · 0 评论