
java
文章平均质量分 81
程序员Club
专注分享技术文章,职场经验,求职攻略,作者是一只程序猿!
展开
-
理解、学习JAVA中的Optional
理解、学习JAVA中的Optional标签: Java8思考: 调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。 原来解决方案: 我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似Guava的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等已经将对在核心API中解决了这个问题。 新版...原创 2018-07-19 09:19:22 · 250 阅读 · 0 评论 -
抽象工厂模式
知识点三: 抽象工厂模式一、概述抽象工厂模式(Abstract Factory Pattern) 是基于工厂方法模式的一个延伸,是所有形态的工厂模式中最为抽象和最具一般性的一种形态。它属于23种GOF设计模式的创建型设计模式。 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据里...原创 2018-11-12 14:26:18 · 209 阅读 · 0 评论 -
单例模式
知识点四: 单例模式一、概述单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。它属于23种GOF设计模式的创建型设计模式 ,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。保证一个类仅有一个实例,并提供一个访问它...原创 2018-11-12 14:27:08 · 212 阅读 · 0 评论 -
建造者模式
知识点五: 建造者模式一、概述建造者模式(Builder Pattern),又被称为生成器模式,它属于23种GOF设计模式的创建型设计模式 ,它与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 建造者模式的目的则是为了将对象的构建与展示分离。建造者模式是使用多个简单的对象一步一步构建成一个复杂的对象。 它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。...原创 2018-11-12 14:27:46 · 255 阅读 · 0 评论 -
原形模式
知识点六: 原形模式一、概述原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能,它属于23种GOF设计模式的创建型设计模式 ,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。它有如下特点:由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原形对象本身。...原创 2018-11-12 14:28:24 · 445 阅读 · 0 评论 -
Collection概述
Collection概述迭代器1.Iterator iterator(): 获取集合对应的迭代器,用于遍历集合中的元素。关羽元素返回的顺序没有任何保证(除此collection是某一个能提供保证顺序的类实例)2.迭代: 即Collection集合元素的通用获取方式,在取出元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出来,一直把集合中的所有元素...原创 2019-07-23 19:49:46 · 184 阅读 · 0 评论 -
工作中经常用到的Date和Calendar知识
平时在开发中经常会遇到与时间相关的知识,平常用Date多一些,Calendar的话,就是写定时任务的时候获取指定时间会用!整理出来与大家一起学习!Java将String类型时间转换为Date代码示例:String startTime ="2019-01-12 12:00:12";String endTime ="2019-04-08 17:00:00";SimpleDateForm...原创 2019-07-23 19:53:56 · 205 阅读 · 0 评论 -
java反射
java反射案例1.创建一个Car类package com.hh.test;public class Car { private String brand; private String color; private int maxSpeed; public String getBrand() { return brand; }...原创 2019-07-23 19:58:39 · 186 阅读 · 0 评论 -
Map经典面试题
MapMap集合的特点:public interface Map<K,V>1.Map集合是一个双列集合,一个元素包含两个值(一个key,yige value)2.Map集合中的元素,key和value的数据类型可以相同,也可以不相同3.Map集合中的元素,key是不允许重复的,value是可以重复的4.Map集合中的元素,key和value是一一对应put()publi...原创 2019-07-23 20:01:17 · 6311 阅读 · 1 评论 -
SSM配置
SpringMVC配置web.xml<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>springm...原创 2019-07-23 20:02:00 · 113 阅读 · 0 评论 -
用Java实现excle导入
excle导入 public Map<String,Object> uploadSpaceUserExc(HttpServletRequest request) throws Exception { Map<String,Object> map = new HashMap<>(); Integer state = 1000; ...原创 2019-07-23 20:03:34 · 209 阅读 · 0 评论 -
log4j日志详解
基本使用方法:log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL,一般只使用四种,从高到低有ERROR,WARN,INFO,DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件;而输出格式则控制了日志...原创 2019-07-23 20:04:30 · 745 阅读 · 0 评论 -
mybatis一些小知识点
引入依赖<!-- mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version></dependency&...原创 2019-07-23 20:05:40 · 150 阅读 · 0 评论 -
Java泛型
泛型的概念:泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型泛型也可以用来看成一个变量。接收数据类型。示例代码:class ArrayList<E>{ public boolean add(E e){ } public E get(int index){ } ....}受限泛型:泛型的上限:格式: 类型名称 &l...原创 2019-07-23 20:06:52 · 150 阅读 · 0 评论 -
JDBC事务实现
JDBC事务代码 Connection conn; try{ //获取数据连接 conn = DriverManager.getConnection("url", "user", "password"); //关闭自动提交机制 conn.setAutoCommit(fal...原创 2019-07-23 20:07:38 · 505 阅读 · 0 评论 -
用Java语言读取配置文件
准备先决条件1.创建一个ModelTest01类public class ModelTest01 {}2.创建一个ModelTest02类public class ModelTest02 {}3.先创建一个配置文件bean.propertiesmodelTest01=com.hh.pro.ModelTest01modelTest02=com.hh.pro.ModelTest...原创 2019-07-23 20:08:58 · 281 阅读 · 0 评论 -
工厂方法模式
知识点二: 工厂方法模式一、概述工厂方法模式(Factory Method)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂模式(Polymorphic Factory),工厂方法模式是简单工厂模式的一个延伸,它属于23种GOF设计模式的创建型设计模式。在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实...原创 2018-11-12 14:25:30 · 280 阅读 · 0 评论 -
简单工厂模式
知识点一:简单工厂模式前言1.概述设计模式是针对某一类问题的最优解决方案,是从许多优秀的软件系统中总结出的。Java中设计模式(java design patterns)通常有23种(这次总结的设计模式多了一个简单工厂模式共24种)。这些模式大体上可以分成3类:创建型模式:创建型模式涉及对象的实例化,特点是不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new创建对象。 ...原创 2018-11-12 14:24:44 · 178 阅读 · 0 评论 -
Lambda表达式
Lambda表达式&nbsp;&nbsp;&nbsp;&nbsp;Lambda表达式是Java8的重要更新,也是一个被广大者期待已久的新特性。Lambda表达式支持将代码作为方法参数,Lambda表达式允许使用更简洁的代码创建只有一个抽象方法的接口(这种接口别称为函数式接口)的实例。 &nbsp;&nbsp;&nbsp;&nbsp;“Lambda表达式”是一个匿名函数,Lam原创 2018-07-19 15:43:41 · 452 阅读 · 0 评论 -
Spring实例化Bean
Spring实例化Bean前言: SpringIoc容器如何实例化Bean呢?传统应用程序可以通过new和反射方式进行实例化Bean.而Spring Ioc容器则需要根据Bean定义里的配置元数据使用反射机制来创建Bean.在Spring Ioc容器中根据Bean定义创建Bean主要有以下几种方式:1.使用构造器实例化Bean&nb...原创 2018-07-31 09:16:15 · 125 阅读 · 0 评论 -
Spring IoC和DI之间有趣灵魂的碰撞
前言: 一直知道控制反转和依赖注入,那到底是什么含义呢?接下来就让我为大家细细讲解一番,认真看咯,嘻嘻!IoC是什么Ioc-Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的再你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何...原创 2018-08-01 09:07:06 · 170 阅读 · 0 评论 -
java8新特性Base64
前言: 为什么有时候用记事本打开exe,jpg,pdf这些文件会看到一堆乱码? 如何要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法,Base64是一种最常见的二进制编码方法。我简述一下我为什么写这篇文章,在昨天发布了我的上一篇文章之后,我哥(目前架构师,我崇拜的对象)私聊我说你可以谢谢脱离框架的东西,其实对于我这种比较小白的人来说不知所措,他就给我推...原创 2018-08-01 09:11:31 · 220 阅读 · 0 评论 -
java中如何遍历Map对象的4种方法
方法一:在for-each循环中使用entry来遍历 Map<Integer,Integer> map = new HashMap<Integer,Integer>(); for(Map.Entry<Integer,Integer> entry:map.entrySet()){ System.out.println("key="...原创 2018-08-01 09:30:27 · 17173 阅读 · 0 评论 -
Spring3—AOP
准备环境首先准备开发需要的jar包,请到spring-framework-3.0.5.RELEASE-dependencies.zip和spring-framework-3.0.5.RELEASE-with-docs中查找如下jar包: org.springframework.aop-3.0.5.RELEASE.jarcom.springsource.org.aspectj.weav...转载 2018-08-01 10:44:56 · 287 阅读 · 0 评论 -
AOP简介
AOP是什么?&nbsp;&nbsp;&nbsp;&nbsp;在进行OOP开发时,都是基于对组件(比如类)进行开发,然后对组件进行组合,OOP最大的问题就是无法解耦组件进行开发, 而AOP就是为了克服这个问题而出现的,它来进行这种耦合的分离。 &nbsp;&nbsp;&nbsp;&nbsp;AOP为开发者提供一种进行横切关注点分离并织入的机制,把横切关注点分离,然后通过某种原创 2018-08-01 15:27:47 · 384 阅读 · 0 评论 -
java中Date时间转换格式
规划规范化 前言:作为一名菜鸟,工作中经常会遇到时间转换格式,然后遇到就头大,所以自己苦思冥想,最终找到了方法,在这里也给大家贴出来,贴出来也是对我的帮助,我记不住的时候也可以翻一翻,哈哈,与大家语气共勉!Date时间转换格式在实体类里面定义开始时间:createStartTime,结束时间:createEndTime,然后生成set()和get()方法 第一种方法:S...原创 2018-08-24 11:26:05 · 711 阅读 · 0 评论 -
Java NIO详解
I/O阻塞和NIO非阻塞传统Java IO是基于阻塞I/O模式,这意味着,当一个线程在调用read()和write()时,该线程被阻塞,直到有一些数据被读取,或数据完全写入,该线程在此期间不能再干任何事情,不仅如此,传统的输入流,输出流都是通过字节的移动来处理的(即使不直接去处理字节流,但底层的实现还是依赖于字节处理),Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅仅...原创 2018-10-26 14:03:24 · 169 阅读 · 0 评论 -
使用NIO实现非阻塞Socket通信
前言从JDK1.4以来,Java提供了NIO API来开发高性能的网络服务,但是在JDK1.4之前,网络通信程序是基于阻塞式API的——即当程序执行输入,输出操作后,在这些操作返回之前会一直阻塞该线程,所以服务器必须为每个客户端都提供一个独立线程进行处理,当服务器端需要同时处理大量客户端时,这种做法会导致性能下降。使用NIO API则可以让服务器端使用一个或有限几个线程来同时处理链接到服务器端...原创 2018-10-26 14:05:15 · 1063 阅读 · 0 评论 -
装饰者模式
知识点八: 装饰者模式一、概述装饰器模式(Decorator Pattern)又叫包装模式,允许向一个现有的对象添加新的功能,同时又不改变其结构。它属于23种GOF设计模式的结构型设计模式 ,它是继承关系的一个替换方案。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。二、优缺点和使用场景1、优点装饰者模式可以提供比继承更多的灵活性...原创 2018-11-15 14:39:08 · 145 阅读 · 0 评论 -
代理模式
知识点九:代理模式一、概述1、什么是代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。它属于23种GOF设计模式的结构型设计模式 。在代理模式中,我们创建具有(包含)现有对象的对象,以便向外界提供功能接口。打个比方代理模式就是相当于我们租房子,我们本身没有找房源的这个功能,但是中介(代理类)有,我们就把我们本身具有的功能(挑房子)给中介,这时候中介就有了新功...原创 2018-11-15 14:39:50 · 3270 阅读 · 0 评论 -
外观模式
知识点十:外观模式一、概述外观模式(Facade Pattern)又称门面模式,属于23种GOF设计模式的结构型设计模式 。 Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。...原创 2018-11-15 20:24:18 · 198 阅读 · 0 评论 -
JVM之垃圾回收机制
JVM之垃圾回收机制垃圾回收机制是 Java 非常重要的特性之一,也是面试题的常客。它让开发者无需关注空间的创建和释放,而是以守护进程的形式在后台自动回收垃圾。这样做不仅提高了开发效率,更改善了内存的使用状况。 下面将从什么是java中的垃圾堆内存的划分回收垃圾的算法分代回收机制Java中垃圾回收器的类型GC相关的JVM参数Full GC和并发垃圾回收来简述java中的垃圾...原创 2018-11-12 14:21:11 · 243 阅读 · 0 评论 -
JVM之类加载机制
JVM之类加载机制JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(...原创 2018-11-12 14:23:52 · 173 阅读 · 0 评论 -
File的一些方法总结
Filejava.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建,查找和删除等操作。文件的一些简单方法public class FileDemo01 { public static void main(String[] args) throws IOException { /** * 因为Windows下和Linux下路径分隔...原创 2019-07-23 20:10:42 · 230 阅读 · 0 评论