java
心之所向,便是唯一
心之所向,便是唯一
展开
-
文件转base64字符串
将文件转为base64字符串原创 2022-06-15 09:33:31 · 332 阅读 · 0 评论 -
自定义枚举注解工具类
自定义枚举注解工具类使用方式/** * @author FangRui * @since 2021-03-09 */public enum Education { @EnumUtil.Description("专科") Specialist, @EnumUtil.Description("本科") undergraduate, @EnumUtil.Description("硕士") master, @EnumUtil.Descripti原创 2021-03-11 14:42:16 · 230 阅读 · 0 评论 -
java自定义注解以及通过反射取得注解的信息
java自定义注解的使用,通过反射取得注解的值public class AnnotationTest { public enum Status{ @Description("进行中") a, @Description("成功") b, @Description("失败") c, } @Retention(RetentionPolicy.RUNTIME) @Targe原创 2020-11-27 11:18:33 · 170 阅读 · 0 评论 -
java四大引用
Java中的四大引用强引用 最常用的,将一个对象赋值给引用变量,这个引用变量就是弱引用,gc不回收强引用的对象软引用 softReference类实现 内存足,不回收,内存不足,回收。高速缓存弱引用 WeakReference类实现 gc运行,直接回收虚引用 PhantomReference类实现 不能单独使用,和引用队列联合使用 作用 跟踪对象被垃圾回收状态...原创 2020-08-31 20:10:17 · 156 阅读 · 0 评论 -
servlet
什么是Servletservlet是java编写的服务的程序,运行在web服务器中servlet容器中,其主要功能是提供请求/响应的web服务模式,可以生成动态的web内容。它有很多的优点,比如较好的移植性,因为servlet是Java语言编写的。执行效率高,servlet会对每一个请求创建一个线程来处理,线程比进程的开销要小。Servlet的生命周期servlet的生命周期包括servlet的加载,实例化,初始化,处理请求,服务结束web容器加载servlet,servlet的生命周期开始原创 2020-08-22 11:08:35 · 132 阅读 · 0 评论 -
Java优点
Java为纯面向对象语言,一切皆对象平台无关性,java是解释性语言,一次编译,到处运行。具有较好的移植性,Java程序编译成class文件,它可以在任何平台创建,可以被任何平台的jvm装载运行java提供很多内置的类库,方便开发人员的开发。例如,提供对多线程的支持,网络编程,垃圾回收器java提供web应用开发的支持,例如servlet和JSP可以用来开发web应用程序具有较好的安全性和健壮性。比如数组边界检测,java有强类型机制,垃圾回收器,异常处理和安全检查机制...原创 2020-08-22 11:05:27 · 144 阅读 · 0 评论 -
springmvc的文件上传和下载
使用ajax上传文件,不跳转页面,解决下载文件时中文乱码问题该demo使用的bootstrap,vue.js显示文件列表。大家可根据自己的需求去取得上传和下载文件的核心代码运用到自己的demo中直接附代码后端代码package com.blog.controller;import com.blog.entity.UploadFile;import com.blog.service.UploadFileService;import com.blog.util.ResultUtil;impor原创 2020-07-29 12:23:37 · 142 阅读 · 0 评论 -
java实现自定义服务器
java实现自定义服务器自定义响应类MyHttpServletResponse,响应请求定义处理请求线程类ProcessedThread实现自定义服务器类MyServer测试登录类前端页面首页index.html登录界面login.html登录成功main.html登录失败failed.html图标文件favicon.ico注意:图标这个文件一定要有,可以新建一个文件后缀名设置为.ico...原创 2020-06-30 00:00:55 · 855 阅读 · 0 评论 -
链表实现栈
栈元素,先进后出实现package com.fz.stack;/** * 链表实现栈 * @author fang * */public class MyStack <E>{ Node<E> top=null; /** * 判空,当栈顶元素为空,栈为空 * @return true or false */ public boolean isEmpty() { return top==null; } /** * 元素入栈原创 2020-06-24 23:26:12 · 124 阅读 · 0 评论 -
Java实现单链表LinkedList
创建单链表,实现对链表的一些基本操作先定义结点package com.fz.linked;/** * 模拟链表,定义链表结点,使用泛型。 * 使结点的data的数据类型可以根据用 * 户传入的数据类型匹配 * @author fang * */public class Node <E>{ /** * 链表的下一个结点 */ Node<E> next=null; /** * 存储的数据 */ E data; /**原创 2020-06-23 20:21:24 · 244 阅读 · 0 评论 -
Java异常处理机制
一、异常概述异常时程序中的一些错误,但是不代表所有的错误都是异常,有些错误可以避免,比如语法错误。异常包含检查性异常,运行时异常和错误。检查性异常:编译不能通过,最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常:编译能通过,运行时出错。运行时异常是可能被程序员避免的异常,例如空指针异常,数组越界错误:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误原创 2020-06-21 20:37:41 · 134 阅读 · 0 评论 -
“==”和equals有何区别
1,“==”运算符用来比较两个变量的值是否相等,比较变量对应的内存中所存储的数值是否相等,如果要比较两个基数据类型或两个引用变量(引用的首地址)是否相等就用“==”基本类型的 == 比的是值,而不是对象,判断二者的内容是否相同。引用类型的 == 比较的是对象(内存地址)。2,“equals”是Object类提供的方法之一。每一个对象都有都有Object方法,因为每一个Java类都继承Object类。Object中的equals方法是直接使用==运算符来比较两个对象,所以如果一个类没有重写Objec原创 2020-06-03 21:00:44 · 140 阅读 · 1 评论 -
char和String存储中文的区别
Java语言默认Unicode编码方式,每个字符占2个字节,所以char无论是存储中文还是字符都是占两个字节。String采用更灵活的方式,英文占一个字节,中文占两个字节,提高了存储效率。public static void main(String[] args) { String str="Hi"; String str1="你好"; System.out.println(str+" 的length="+str.length()+" 字节数="+str.getBytes().lengt原创 2020-06-03 20:04:48 · 1670 阅读 · 0 评论 -
final、finally、finalize的区别?
final用于修饰属性、方法和类,修饰的属性不可变,修饰的方法不能被覆盖(重写),修饰的类不能被继承final属性:不可变有两种含义:一是引用不变,二是对象不变。final指的是引用不变,它只能初始化时指向的那个对象,而不关心对象内容的变化。 public static void main(String[] args) { final StringBuffer a=new StringBuffer("hello"); //只是改变对象的内容,没有改变对象的引用 a.append(" w.原创 2020-05-23 10:51:02 · 145 阅读 · 0 评论 -
什么是构造函数
构造函数是一种特殊的函数,用来在对象实例化时初始化类的成员变量。构造函数主要的作用是完成对象的初始化工作。特点:构造函数的名字必须和类名一致,并且不能有返回值因为构造函数可以被重载,所以一个类可以有多个构造函数不能被继承,所以不能被重写当一个类没有定义构造函数时,编译器会默认生成一个无参的构造函数构造函数总是伴随着new操作一起调用,不能由程序编写者直接调用,而是由系统调用。构造函数在对象实例化时自动被调用,只被调用一次...原创 2020-05-23 10:13:19 · 4021 阅读 · 0 评论 -
抽象类和接口简述之异同
一、抽象类(abstract)抽象类概念抽象类是对一种事物的抽象,即对类抽象。定义:如果一个类含有抽象方法,那么这个类就是抽象类,抽象类必须在类前用 abstract 关键字修饰。public abstract class Animal { public abstract void eat();}规则1、抽象方法必须是public或protected,(因为如果为 private,则不能被子类继承,子类便无法实现该方法),默认情况下默认为 public。抽象方法没有方法体。原创 2020-05-22 09:13:13 · 269 阅读 · 0 评论 -
你知道java是怎么实现多态的吗
主要有两种表现方式1、方法的重载。发生在编译时期。2、方法的重写。运行时期多态。原创 2020-05-19 15:10:11 · 164 阅读 · 0 评论 -
你知道java中方法的重载和重写吗
一、方法的重载是指在同一个类中定义多个同名的方法,它们的参数类型不同或参数个数不同代码实现public class TestOverload { public static void print(String str) { System.out.println(str); } public static void print(int num) { System.out.println(num); } public static void print(int num, Str原创 2020-05-19 15:00:34 · 254 阅读 · 0 评论 -
你了解Java程序初始化的顺序是怎样的吗
一、前言在Java中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有类成员初始化后,才会调用对象所在类的构造函数创建对象 。二、Java程序的初始化一般遵循3个原则优先级依次递减静态变量(对象)优先于非静态变量(对象)初始化。静态变量(对象)只初始化一次。父类优先子类初始化。按照成员变量的定义顺序进行初始化,与其所在位置无关。三、Java程序初始化工作可以在许多不同的代码块中来完成执行顺序为:父类静态变量、父类静态代码块子类静态变量、子类静态代码块父类非静态原创 2020-05-19 13:29:20 · 199 阅读 · 0 评论 -
用代码实现生成二维码和解析二维码
一、二维码简介用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息比一维条形码能存更多信息,表示更多数据类型能够存储数字/字母/汉字/图片等信息字符集128个字符可存储几百到几十KB字符抗损坏二、Zxing(Zebra Crossing)Zxing(Zebra Crossing)– Google 出品– 支持1D和2D的Barcode主要类BitMatrix 位图矩阵MultiFormatWriter 位图编写器MatrixToImageW原创 2020-05-16 16:52:18 · 1682 阅读 · 0 评论 -
java代码实现简单邮件发送的步骤
一、导入依赖包使用maven方式<!-- 发送邮件 --><!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail --><dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</ver原创 2020-05-15 17:52:50 · 570 阅读 · 0 评论 -
java访问控制修饰符public、protected、private和default
Java支持四种访问权限public、protected、private和default。Java中,我们可以通过使用访问控制符来保护对类、变量、方法和构造方法的访问。public : 对所有类可见。使用对象:类、接口、变量、方法protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private : 在同一类内可见。使用对象:变量、方法。原创 2020-05-15 11:34:00 · 319 阅读 · 0 评论 -
Collection和Collections的比较
1、CollectionCollection是最基本的集合接口,Collection 接口存储一组不唯一,无序的对象。JDK不提供此接口的任何实现,它提供更具体的子接口实现,如Set和List直接继承Collection接口。Set存储不可重复的元素,无序。List存储可重复的元素,有序。注意:有序和无序是针对存入元素时的顺序而言,并不是排序。2、ConlletionsCollections是集合类的一个工具类,它提供了一系列的静态方法,可以用来对集合进行排序、搜索以及线程安全等各种操作原创 2020-05-14 10:03:09 · 327 阅读 · 0 评论 -
Java中的值传递与引用传递区别
1、值传递在方法的调用过程中,实参把它的实际值传递给形参,此传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。因为是直接复制,所以这种方式在传递大量数据时,运行效率会特别低下。2、引用传递引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将对象的地址值传递过去,函数接收的是原始值的首地址值。在方法的执行过程中,形参和实参的内容相同,指向同一块内存地址,也就是说操作的其实都是源数据,所以方法的执原创 2020-05-13 09:37:10 · 410 阅读 · 0 评论 -
Java八种基本数据类型和对应的包装类
原创 2020-05-13 09:32:24 · 286 阅读 · 0 评论 -
Java中成员变量、局部变量、静态变量的区别
成员变量局部变量静态变量定义位置在类中,方法外在方法中,或者方法的形式参数在类中,方法外初始化值有默认初始化值无初始化值,先定义,赋值后才能使用有初始化值调用方法对象调用-----对象调用,类名调用存储位置堆中栈中方法区生命周期与对象共存亡与方法共存亡与类共存亡别名实例变量----类变量...原创 2020-05-13 09:22:37 · 193 阅读 · 0 评论 -
java代码实现求最大公约数和最小公倍数
直接附上代码 // 找出最大值和最小值 int max = m > n ? m : n; int min = m < n ? m : n; //求最大公约数 for (int i = min; i > 0; i--) { if (min % i == 0 && max % i == 0) { System.out.println(m + "和" + n + "最大公约数为:" + i); break; } } // 求最小公倍数 fo原创 2020-05-11 17:14:20 · 1189 阅读 · 0 评论 -
代码实现辗转相除法求最大公约数
辗转相除法:对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数。继续前面的除法,直到大数被小数除尽则这时较小的数就是原来两个数的最大公约数。public int getResult(int m,int n){ //比较出最大值和最小值 int max = m > n ? m : n; int min = m < n ? m : n; //循环判断 while (max % min != 0) { int temp = max; ma原创 2020-05-11 17:11:00 · 1181 阅读 · 0 评论 -
java连接oracle和mysql数据库,并进行增删改查
记得导连接数据的依赖包不多说,直接附上代码package com.fang.jdbc;import java.sql.*;/** * @program: blog * @description: 连接数据库并进行简单的操作 * @author: Fang * @create: 2020-05-11 11:14 **/public class JDBC { /** * 取得与数据库的连接 * * @return Connection *原创 2020-05-11 14:16:53 · 641 阅读 · 1 评论