java基础
文章平均质量分 77
GraceJava
技术因分享而伟大,keep moving
展开
-
Redis最全介绍
Redis简介简单介绍Redis:开源、免费、非关系型数据库、K-V数据库、内存数据库,支持持久化、事务和备份,集群(支持16个库)等高可用功能。并且性能极高(可以达到100000+的QPS),易扩展,丰富的数据类型,所有操作都是单线程,原子性的。NOSQL:非关系型数据库,数据与数据之间没有关联关系。就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题类型键值(key-value)存储数据库列存储数据库:键仍然存在,但是指向了多个列,HBase (eg:博客平台(标签和文章原创 2021-10-25 21:53:23 · 1067 阅读 · 0 评论 -
Spring Boot AOP 获取用户,日志入库
文章目录依赖文件配置文件数据库文件实体文件:自定义注解自定义切面:保存日志实体方法测试:在Spring框架中,使用AOP配合自定义注解可以方便的实现用户操作的监控。首先搭建一个基本的Spring Boot Web环境开启Spring Boot,然后引入必要依赖:依赖文件<!-- aop依赖 --> <dependency> <groupId>org.springframework.boot</groupId>原创 2020-11-06 15:13:49 · 2142 阅读 · 1 评论 -
mysql搜索大小写区分
mysql搜索大小写区分需求说明问题查找问题解决需求说明最近功能上线,模糊搜索后,客户反馈不能进行大小写的模糊搜索,例如:输入abcd,只能返回包含adcd的内容,不能搜到ABCD的内容,需要修改。问题查找根据网络上一系列的搜索,mysql默认是不区分大小写的,而java是区分大小写的,那么为何我的默认区分大小写了呢。打开navicat,搜索输入:select * from t_user where user_name like "lihao%"返回结果只有lihao,没有LIhao等内容。这原创 2020-06-02 15:07:29 · 703 阅读 · 0 评论 -
Java中时间格式化(获取指定时间)
Java中时间格式化(获取指定时间,七天前)1、通过获取当前系统时间,格式化后转为“yyyy-MM-dd HH:mm:ss”格式并输出; 2、可获取指定时间,如七天前,一年前等,用户通过时间段查询相关业务。代码如下package controller;import java.text.SimpleDateFormat;import java.util.Calendar;imp...原创 2018-06-06 08:34:40 · 9633 阅读 · 0 评论 -
代理模式
Java Proxy和CGLIB动态代理原理1.动态代理动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在编译期确定的。静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性。今天我们来探讨Java中两...转载 2018-06-13 18:10:47 · 241 阅读 · 0 评论 -
Java集合类汇总
Java集合1.Java集合类基本概念在编程中,长城要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变得,如果我们需要保存一个可以动态增长的数据,Java集合类便是我们很好的选择了。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位...原创 2018-06-07 14:52:53 · 362 阅读 · 0 评论 -
Java多线程
1、https://www.cnblogs.com/GarfieldEr007/p/5746362.html 2、https://blog.csdn.net/evankaka/article/details/51489322 3、https://blog.csdn.net/column/details/javahhighconcurrence.html原创 2018-06-07 15:46:24 · 173 阅读 · 0 评论 -
整理最全Java面试题一(附答案,欢迎指正)
说明:面试题为网络上整理,答案为自己简写,能力有限,面试参考。基础篇一一.基础知识:1)集合类:List和Set比较,各自的子类比较(ArrayList,,LinkedList;HashSet,TreeSet); 1.1 List接口继承自Collection接口,是有序的,集合中的元素可以重复,常用两个实现子类为ArrayList和LinkedList, - 【Arrayli...原创 2018-08-31 09:43:14 · 606 阅读 · 0 评论 -
深入Java虚拟机之 -- 类加载机制
深入Java虚拟机之 – 类加载机制文章目录深入Java虚拟机之 -- 类加载机制一、类加载机制二、类加载的时机2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化三、类加载器四、双亲委派模型一、类加载机制虚拟机把描述类的数据从Class文件 (二进制流) 加载到内存,并对数据结构进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是Java的类加载机制...原创 2019-05-08 11:10:20 · 302 阅读 · 0 评论 -
JAVA 垃圾回收机制(一) --- 对象回收与算法初识
##JAVA 垃圾回收机制(一) — 对象回收与算法初识文章目录一、概念二、哪些对象需要回收三、什么时候回收四、如何回收一、概念这里说的GC回收,指的是 Java 堆的地方, 深入Java虚拟机之 — JVM的爱恨情仇 文章 中,我们知道了程序计算器,虚拟机栈和本地方法栈都是随线程开启,随线程关闭的,因此这几块区域的内存分配和回收都具备确定性。而Java 堆和方法区则不一样,一个接口中的...原创 2019-05-07 17:08:03 · 273 阅读 · 0 评论 -
ThreadLocal学习笔记
文章目录ThreadLocal学习笔记ThreadLocal的实现原理自定义ThreadLocal实现源码解读ThreadLoalMaphash冲突内存泄露ThreadLocal学习笔记最近看一些面经,好像很多时候都有提到ThrealLocal的实现原理,之前在学习多线程的时候似乎没有太注意ThreadLocal这个本地线程,现在看看源码,学习一下。ThreadLocal的实现原理Th...原创 2019-05-22 22:44:02 · 290 阅读 · 1 评论 -
Redis系列(一)-redis简介
文章目录一、Redis简介二、Redis安装三、redis数据结构一、Redis简介Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis是一个key-value存储系统。与Memcached类似,它支持存储的value类型相对更多,包括5种数据类型。redis和memcached一样,为了...原创 2019-05-23 15:08:10 · 470 阅读 · 0 评论 -
redis系列(二)-redis持久化
文章目录2.redis配置文件2.1RDB的持久化配置2.1.1优点2.1.2缺点2.2AOF的持久化配置2.2.1 优点2.2.2缺点2.3 RDB与AOF的选择:3.备份##1.Redis为持久化提供了两种方式:RDB:在指定的时间间隔能对你的数据进行快照存储。AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。2.redis配置文件进入r...原创 2019-05-23 15:12:52 · 361 阅读 · 2 评论 -
Redis集群
文章目录前言Redis安装数据分片搭建集群安装ruby环境:测试集群参考博文前言Redis 是我们目前大规模使用的缓存中间件,由于它强大高效而又便捷的功能,得到了广泛的使用。单节点的Redis已经就达到了很高的性能,为了提高可用性我们可以使用Redis集群。本文参考了Rdis的官方文档和使用Redis官方提供的Redis Cluster工具搭建Rdis集群。注意 :Redis的版本要在3...原创 2019-05-28 14:31:53 · 310 阅读 · 1 评论 -
最全的java时间工具类
java时间工具类整理的最全的java时间工具类。获取当前时间时间戳(long);获取当前日期,包含时分秒(yyyy-MM-dd HH:mm:ss);获取当前日期,不包含时分秒(yyyy-MM-dd);得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期时间戳为yyyy-MM-dd HH:mm:ss.SSS格式的日期;获取当前日期是一个星期的第几天;...原创 2019-08-27 15:20:06 · 24157 阅读 · 2 评论 -
插入排序
插入排序1.插入排序插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。2. 算法步骤将第一待排序序列第一个...原创 2018-06-12 14:46:14 · 291 阅读 · 0 评论 -
选择排序
选择排序1.选择排序选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。2.算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。...原创 2018-06-12 14:38:33 · 262 阅读 · 0 评论 -
Controller页面乱码的问题(修改tomcat默认的编码方式 )
最近在做项目自测的时候发现,每次输入查询条件为中文时,后端Controller层中请求的的VO中都是乱码,第一次遇到没有头绪,于是开始了各种排除法一、在jsp中,页面的编码很明确:page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>二、在Controlle原创 2017-02-24 17:15:29 · 1873 阅读 · 0 评论 -
List使用add方法添加数据时的覆盖问题
有时候我们用对象封装数据后添加到list链表中会发现,最后添加的那个对象覆盖了前面所有的数据,虽然数据的总数(list.size())和实际情况一样,但是数据却不是我们想要的例如下面: ResultSet rs = stmt.executeQuery("select * from " + tableName); List dataList = new ArrayLi原创 2017-09-01 17:24:14 · 5327 阅读 · 1 评论 -
Java对象序列化为什么要使用SerialversionUID
1、首先谈谈为什么要序列化对象把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的S原创 2017-10-26 16:00:58 · 32439 阅读 · 10 评论 -
一点一点学java—概览
一、Java开发依赖于Java开发工具包(JDK),所以在进行Java学习前,需要首先在计算机中配置好Java开发环境,安装教程及说明二、一行代码认识Javapublic class HelloWorld { public static void main(String[] args) { System.out.println("Hello World");原创 2017-11-02 15:26:31 · 275 阅读 · 0 评论 -
java面试基础--持续更新
java面试基础1、解释什么事面向对象编程(oop) java是一个支持并发、基于类和面向对象的计算机编程语言。具体优点如下: -代码开发模块化,易于维护和修改 -代码服用 -增加代码的可理解性 特性 封装:即给对象提供了隐藏内部特性和行为的能力。 多态:多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。 继承:继原创 2018-01-21 19:12:24 · 208 阅读 · 0 评论 -
Java基础学习一之搭建开发环境(配置环境变量)
在搭建开发环境之前,我们需要先来大致了解所需要的搭建工具:1、JDK,英文全名Java development kit,即Java开发工具包,没有jdk就没有办法编译java程序。2、JRE,英文全名Java runtime environment ,即Java运行环境,一般来讲JDK是包含了JRE的,简单理解JDK是用来做开发的,而JRE是用于Java程序的运行,两者都是Java开发所必原创 2017-01-07 13:32:04 · 739 阅读 · 0 评论 -
在JAVA开发环境中部署WAR包
购买阿里云 本来我是没做过运维方面的工作,挺感兴趣的,开开心心地去注册了一个账户并购买了一年服务器的使用。 打开控制台 如图所示,因为项目很小,只是做一个Demo出来看一个就好了,就决定买1核2G,操作系统是CentOS 7.3。事实证明这个性能还可以,毕竟只是公司内部的一个展示 。一千一百多觉得还蛮贵的(可能是我穷)。 配置云环境 云服务也买好了,那现在就配置一下环境吧,我用原创 2018-01-16 17:11:27 · 1938 阅读 · 0 评论 -
static关键字的作用
关键字 static一、 static 代表着什么在 Java 中并不存在全局变量的概念,但是我们可以通过 static 来实现一个“伪全局”的概念,在 Java 中 static 表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。Java 把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在原创 2018-01-17 15:16:24 · 346 阅读 · 0 评论 -
深入理解java垃圾回收机制----
一、垃圾回收机制的意义 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。 ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂原创 2018-01-15 17:27:16 · 187 阅读 · 0 评论 -
Java网络编程(客户端/服务器,信息共享,文件上传)
一、TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输。这里就要使用到TCP/IP协议。 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成。IP层负责网络主机的定位,数据传输的路由,由IP地址可以唯一的确定Internet上的一台主机。TCP层负责面向应用的可靠原创 2018-01-26 16:21:55 · 3057 阅读 · 0 评论 -
整理最全java面试题二(附答案,欢迎指正)
基础篇一一.基础知识:1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;4)HashTable和ConcurrentHash...原创 2018-01-28 13:41:26 · 3205 阅读 · 1 评论 -
Java集合之List接口
List接口、ArrayList类和LinkedList类1.ListList接口继承自Collection接口,其中常用的较为重要的方法如下:public interface List&lt;AnyType&gt; extends Collection&lt;AnyType&gt;{ int size(); boolean add(E e); bool...原创 2018-06-12 08:48:57 · 242 阅读 · 0 评论 -
冒泡排序
冒泡排序1.冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出...原创 2018-06-12 14:36:53 · 327 阅读 · 1 评论 -
java I/O 字节流和字符流的运用
流的概念: 在程序中所有的数据都是以流的方式进行传输或者保存的,程序需要数据的时候要使用输入流,程序要将一些数据保存的时候,就要使用输出流。 程序中的输入输出都是以流的形式进行保存的,流中保存的实际上全都是字节文件。字节流与字符流 在java.io包中操作文件内容主要有两大类:字节流和字符流,两类都分别输入和输出操作。在字节流中输出数据主要使用OutputStream完原创 2017-02-08 08:58:36 · 470 阅读 · 0 评论