
Java
文章平均质量分 56
小林Java
一天中最快乐的事,就是不断地学习。
展开
-
java之树结构得实现
1.建数据库名为tree2.写代码包的层次:实体类:package com.gsl.node.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisp.原创 2020-08-27 09:02:56 · 1052 阅读 · 1 评论 -
Java之fastjson的简单使用
1.接口发送json格式的数据 { "code": 1, "message": "成功", "rows": [ { "latitude": "40.05068", "longitude": "116.305506", "placeName": "中国北京市海淀区软件园六号路", "create...原创 2019-12-24 11:17:49 · 643 阅读 · 0 评论 -
Java之乐观锁和悲观锁
Java之乐观锁和悲观锁乐观锁用到的机制是CAS(Compare and Swap),每个线程都可以访问,只有在提交数据的时候,检查是否违反了数据的完整性。如果发生冲突失败重试,直到成功为止。乐观锁大多数都是基于数据版本(version)记录机制来实现的。何为数据版本?我们通常情况下会在数据库中添加一个版本(version)标识。读取数据时,也会将这个版本标识读取到,事务完成后版本号...原创 2018-08-09 14:40:00 · 6741 阅读 · 0 评论 -
java排序
数组排序数组有一个工具类Arrays,里面有一个静态方法sort(),可以实现排序,不过他只能升序。可以使用Comparator.reverseOrder进行降序。如果自己写的引用对象想实现排序功能需要实现Comparable接口重写compareTo方法,即可排序。用户实体类:package com.company.sort;import java.util.Objects...原创 2018-07-27 14:32:37 · 368 阅读 · 0 评论 -
Java算法之递归
在Java中去掉for循环,你们还知道用那些方法去遍历数组或集合里的数据。接下里我为大家讲一下递归。用递归也是可以实现数据的循环。递归的原理就是自己调自己的方法,直到达到自己设定的条件返回。下面举个例子,递归1-100的数据。代码实现如下:package com.company.recursion;/** * <br> * <b>类说明: </b&g...原创 2018-07-26 22:56:49 · 375 阅读 · 0 评论 -
java数据结构-手写栈
栈先进后出原则。下面就简单的写一个栈的小demo。代码如下:1.MyStack.java/** * <br> * <b>类说明: </b>自定义一个栈的基本操作 * <b>作者: </b> Guo.shiLin * <b>日期: </b> 2018\7\25 0025 * 栈的底层原创 2018-07-25 23:01:03 · 1367 阅读 · 0 评论 -
Java之成员变量、全局变量、局部变量的区别
存储区域:全局变量(全局静态变量)是放在方法区中。成员变量如果没有实例化那么变量是放在栈中;实例化了对象放在堆中,栈中放的是指向堆中对象的引用地址。局部变量放在栈中,new的对象放在堆中,8中基本数据类型变量放在栈中,变量所对应的值是放在栈帧中。生命周期:全局变量:当类加载的时候,就开始被创建,在类中只有一份; 会跟着类的消失而消失,生存时间叫长。成员变量:在对象被创建时而...原创 2018-07-19 22:29:13 · 11603 阅读 · 0 评论 -
Java缓冲字符流的使用
package com.company.io;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;/** * <br> * <b>类说明: </b> 缓冲流的使用 * <b>作者: </b> Guo.shiLin * &...原创 2018-08-07 16:08:32 · 378 阅读 · 0 评论 -
获取request数据的三种方式
request.getParameter()、request.getReader()、equest.getInputStream()。1.request.getParameter()只适合application/x- www-form-urlencoded是Post请求默认的请求体内容类型,也是form表单默认的类型。2.当请求体内容是其它类型时,比如multipart/form-dat...原创 2019-06-16 22:35:02 · 4232 阅读 · 0 评论 -
Java集合-ArrayList与LinkedList的区别
Java集合-ArrayList与LinkedList的区别LinkedList数据结构:链表结构通过移动指针对元素插入和删除,效率很高。底层代码如下:查找需要进行遍历查询,效率低。LinkedList与ArrayList的区别:LinkedList是链表结构,指定位置插入和删除快,不适合查找。 ArrayList是动态数组结构,查找快,指定位置插入和删除慢。...原创 2018-07-06 17:42:12 · 244 阅读 · 0 评论 -
Java请求接口接收工具类
Java请求接口接收工具类1. Maven依赖:<!-- json插件 --><dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4原创 2018-07-10 14:24:40 · 1210 阅读 · 0 评论 -
java之final、finally、finalize的区别
java之final、finally、finalize的区别final:Java关键字,用于声明属性、方法、类。声明的属性不能被修改,声明的方法不能被重写,声明的类不能被继承。finally:Java异常处理的一部分,表示总要执行的。finalize:是Object的一个方法,用于回收资源,finalize方法将在垃圾回收器清除对象之前执行。在实际应用中,不要依赖此方法,因为此方法你也不知道什么时...原创 2018-07-10 11:57:16 · 114 阅读 · 0 评论 -
JVM之GC算法
JVM之GC算法GC对与大家来说都不陌生,它是Java中的垃圾回收机制。用来回收那些不用的对象或者是没有意义的对象,比如说你定义了一个空对象或者没有使用这个引用对象,GC扫描到这些没用的对象就会清理掉。那么问题来了?如何确定这些不用的对象是需要回收的、在什么时候回收、采用什么方式回收。1.判断该对象是否是要清理的对象,有两种方法可以去判断。1. 引用计数算法对象在创建的时候,会在这个对象里面添加一...原创 2018-07-03 14:13:51 · 225 阅读 · 0 评论 -
Java之数组在指定位置插入元素
Java之数组在指定位置插入元素1.假设在已知数组中在指定位置添加一个元素,那么在这位置的数据元素就会被替换掉。代码:public class InsertArray { public static void main(String[] args) { int index = 2; int value = 5; int[] array = new int[]{1,2,...原创 2018-07-16 10:21:43 · 26933 阅读 · 7 评论 -
java-爬虫实现逻辑
爬虫实现的功能:1:发送请求和获取响应的功能。2:解析响应功能。3:对过滤的数据进行存储。4:对解析出来的URL进行处理。原创 2018-07-09 17:23:34 · 247 阅读 · 0 评论 -
Java之队列queue
Java之队列queueQueue接口与List、set都是继承collection。Queue是一种数据结构,它有两个基本操作:在队列尾部插入一个元素,在队列头部移除一个元,也就是先进先出原则。队列常用的API:add:增加一个元素。如果队列已满,则抛出一个IllegalSlabEepeplian异常。remove:移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementEx...原创 2018-07-09 15:58:14 · 607 阅读 · 0 评论 -
java接口请求工具类
Maven添加第三方类库在这里我传的参数是Json格式的。下面是java代码: /** * 招标接口输入参数,post请求 * * @param json * @return */ public static JSONObject doInvitePost(String url, TimersInviteInfo timersInviteInfo)...原创 2018-07-02 10:52:29 · 1466 阅读 · 0 评论 -
java的excel的导入导出前端与后台完整版的
1.我们要写一个注解ExcelField类。@Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface ExcelField { /** * 导出字段名(默认调用当前字段的“get”方法,如指定导出字段为对象...原创 2018-07-02 13:49:34 · 10164 阅读 · 12 评论 -
Java-爬取页面数据
Java-爬取页面数据public class HttpReptilianUtil { public static String getHtml(String url){ BufferedReader in = null; //定义字符缓冲区 StringBuffer stringBuffer = new StringBuffer(); try { //创建URL地址 ...原创 2018-07-10 15:23:50 · 2053 阅读 · 0 评论 -
Java命名规范
Java命名规范1、 项目名全部小写例如:myproject2、 包名全部小写例如:com.student.pojo3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。例如:public class MyFirstClass{}4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。例如:getName()5、 常量...原创 2018-07-16 23:36:36 · 271 阅读 · 0 评论 -
java设计模式-单例模式
java设计模式-单例模式单例模式是java最简单的设计模式之一。这种设计模式属于创建型模式。该模式只涉及到单一的类,有自己而创建,同时要确保类的实例在内存中只有一份。单例模式设计特点:1.构造函数私有化。2.类的内部构建对象。3.类的外部通过类中的静态方法访问对象。在实际开发中单例模式有多种实现,下面给列举最常用的几个:1.饿汉式优点:线程安全,不需要加锁,实现简...原创 2018-06-28 15:07:42 · 188 阅读 · 0 评论 -
java设计模式-工厂模式
工厂模式是java最常用的设计模式之一,属于创建型模式。它定义一个创建对象的接口,让子类具体实例化哪一个工厂类,把创建对象和适用对象隔离出来。优点:1.只需知道名称即可创建一个对象2.扩展性高,如果想增加一个对象,只需要在工厂类扩展即可。缺点:每次要增加一个对象,都需要添加一个具体实现类和工厂创建对象。1.对象接口2.具体实现类3.工厂类4.测试5.测试结果...原创 2018-06-28 16:42:03 · 251 阅读 · 1 评论 -
java设计模式-抽象工厂模式
抽象工厂模式属于创建型模式。是围绕一个超级工厂创建其他工厂,工厂在负责创建对象,具体实例化对象由子类实现。1.Color接口2.Color接口具体实现类3.People接口4.People接口具体实现类5.AbstractFactory类6. ColorFactory类7.PeopleFactory类8.超级大工厂来创建工厂,FactoryManager类9.抽象工厂测试类10.测试结果...原创 2018-06-29 15:35:06 · 396 阅读 · 1 评论 -
Java设计模式-代理模式
代理模式中的三种角色 一、介绍代理模式属于结构型模式,它分三个角色:1. 代理角色:代理角色里面有被代理角色的引用,从而可以操作被代理角色。如果想扩展其他功能,可以直接在代理角色里面扩展。相当于对被代理角色进行封装。2. 被代理角色:是代理角色所代表的真实角色,里面放着核心的业务。其他附属的业务都放在代理角色里面。3. 抽象角色:是一个接口或者抽象类,是代理角色和被代理角色共同的接口...原创 2018-07-03 17:50:45 · 199 阅读 · 0 评论 -
Java集合-ArrayList与Vector的区别
Java集合-ArrayList与Vector的区别1、ArrayList与Vector的底层代码首先先看ArrayList的底层代码。如图所示:1.实现了List接口,可以存放空元素、重复元素,元素之间存放的顺序是有序的。2.实现了RandomAccess接口,RandomAccess接口的作用是用来标记,可以快速随机访问。3.实现了Serializable接口,支持序列化,可以通过序列化传输。...原创 2018-07-06 16:28:53 · 177 阅读 · 0 评论 -
Java中volatile和synchronized的使用
在开发当中使用多线程的,经常会用到synchronized和volatitle。接下来就讲讲他们的使用场景。synchronizedjava关键字,方法用到这个关键字则对这个方法进行加锁。一次只能进入一个线程,其他线程只能等待或执行其他没有加锁的方法。等到这个线程完成后,下个线程才能进去。这样保证数据的原子性,同时性能也就下降。volatilejava关键字,用来声明变量。1....原创 2018-07-23 11:05:16 · 637 阅读 · 0 评论 -
Java之冒泡排序及优化
设计思路根据字义就能理解他是相邻的两个数进行比较,比较的结果在与下个进行比较。两次for循环,外循环控制轮数,内循环代表每一轮的冒泡处理,先进行元素比较,在进行元素交换。java代码:public class Test { //冒泡排序 public static void main(String[] args) { int[] arr = new int[]{1,2,7,4...原创 2018-07-17 11:05:06 · 214 阅读 · 0 评论 -
JVM生命周期
JVM(Java Virtual Machine):Java虚拟机是Java的核心和基础,用来加载字节码(.class)文件、管理并分配内存、执行垃圾收集。JVM的生命周期分为七个阶段。一、创建阶段(Creation)1.为对象分配内存空间。2.开始构造对象。3.递归调用其父类的构造函数。4.进行对象实例初始化与变量初始化。二、应用阶段(Using)1.强引用(Strong Reference)基...原创 2018-07-02 17:48:38 · 2005 阅读 · 0 评论