java
文章平均质量分 62
ailigei
茶,不仅仅是茶,它更是一种美好的生活方式。
展开
-
JavaMail邮件发送服务
记录一次使用基于SpringBoot来设置发送邮件的服务。原创 2023-11-16 23:50:28 · 326 阅读 · 0 评论 -
你了解过Java注解中的@Retention(RetentionPolicy.RUNTIME)的作用吗?
在”main”方法中,我们通过反射获取”AnnotationExample”类中的所有方法,并判断是否存在”MyAnnotation”注解。具体来说,它定义了被注解的元素的保留策略,即注解在运行时仍然有效。显然,这里可以打印出Hello,这是因为我们在”myMethod”方法上使用了@MyAnnotation(“Hello”)注解,并在运行时通过反射获取到了该注解。通过javap命令我们查看字节码文件的时候,RUNTIME策略的注解是被保留的,其实也就说明了,这个策略一个重要的作用,那就是反射。原创 2023-09-04 22:44:06 · 2034 阅读 · 1 评论 -
Java-记录Ansj分词器的用法
中华文化博大精深,很多语句是没那么好分开变成词的,比如:文言文,或者大家可以体会一下这句话(一把把把把住)哈哈哈,是不是很懵逼,其实他可以这么理解(一把/把/把/把住)今天在做项目的时候就遇到这个问题,需要对文件进行分词,用了一个很好用的第三方jar包(ansj)从控制台能看出来还是很厉害的,完美的实现了我需要的分词效果。例如我们有一个这样的字符串。原创 2023-03-06 11:52:25 · 155 阅读 · 0 评论 -
总结类加载的过程,双亲委派模型,JVM回收机制
JVM之面试常考必考原创 2022-07-13 11:36:12 · 308 阅读 · 0 评论 -
总结 HTTPS 的加密流程
我在之前的文章中给大家介绍过,接下来给大家详细的介绍一下在上篇介绍的文章中,和大家介绍过运营商劫持事件,可能很多小伙伴没看过之前的文章,在这里就给大家再简单的介绍一下之前介绍的是明文传输,传输的数据,是容易被获取的,也容易被篡改的,引入 ,对数据加密,也就能更好的保护数据的安全。加密和解密这件事情,本身是一个和数学密切相关的事情,咱们此处,只能简单讨论“流程”,无法讨论加密解密的“实现细节”,加密之后,也不是就绝对安全,只能说破解起来计算量很大,成本很高。有些数据经过加密之后,哪怕使用当前最牛逼的计算机,破原创 2022-06-29 17:58:34 · 1499 阅读 · 0 评论 -
总结 HTTP 协议的基本格式和 fiddler 的用法(全是干货)
在我之前的文章中,给大家介绍过TCP/IP五层协议栈中的几个常见协议。今天再给大家补充一下一个基于TCP协议的应用层协议HTTP。HTTP协议也是日常开发中非常常用的的一种协议,在众多协议栈里HTTP可能是实际开发中用的最多的。所以我们在这一块一定要重视起来在整个协议栈中,上层和下层之间的关系是一定的关联关系的,上层协议要调用下层协议,下层协议要给上层协议提供一个支撑,所以说HTTP作为一个应用层协议,他在进行传输数据的时候,就要基于TCP的这一套机制的保证。HTTP具体的应用场景:大家天天都在用的浏览器,原创 2022-06-18 14:14:51 · 540 阅读 · 0 评论 -
JavaEE初阶----CSS选择器的常见用法
CSS中最简单且最常用的几种选择器!!!原创 2022-05-05 21:37:05 · 229 阅读 · 0 评论 -
JavaEE初阶----网络协议(网络面试必考内容)
目录前言应用层协议xmljsonprotobuffer传输层协议UDP我们来讲讲校验和吧报文长度:TCP网络层协议数据链路层协议前言上一篇博客详情点这篇博客,我们讲到五层模型,现在我们来讲讲具体的每层模型中的协议。应用层协议在应用层这里,最最重要的事情,就是“设计并实现一个应用层协议”–这是一个非常简单,同时也是在工作中经常要做的事情。形如这样的工作,就是在设计一个应用层协议~~图中下面部分的工作,其实就是在规划请求和响应之间要传递的信息~~上面我们讲的其实就是在约定传的信息(数据)原创 2022-05-02 23:07:01 · 372 阅读 · 0 评论 -
JavaEE----初识网络(web)
网络基础局域网/广域网局域网: 就是将 两台,或者几台主机连接在一起。这样就构成了一个局域网。例如:当然在日常使用中,这种组网方式是非常少见的(非常废网线,非常废网口)一般组件局域网中,都会使用一些转发设备:交换机,路由器~交换机借助交换机,就组成了一个局域网~~交换机上面的网口之间都是对等的(都是一样的口)效果就是把插在上面的设备给组建成一个局域网,这个局域网内部的主机之间就可以互相进行访问。(交换机是把若干个设备给组建到一个局域网中 )路由器可以视为A是B的局域网中的一个设原创 2022-04-22 16:48:46 · 627 阅读 · 0 评论 -
JavaEE初阶----多线程单例模式
🚩唠嗑居然把这个多线程的典型案例给忘记写博客了~,此时的心情和可达鸭一样一脸懵逼哈哈哈,写博客是件不容易的事情啊,一篇就得半天,还欠着网络部分好几篇呢。慢慢来把,贪多嚼不烂💪🚩多线程单例模式(面试常见问题):首先我们得知道单例模式是一种设计模式~写代码时有些常见场景,设计模式就是针对这些常见场景给出得一些经典解决方案~单例模式的两种典型实现(Singleton~~singleDog):1.饿汉模式举个洗碗的例子吧:中午这顿饭使用了四个碗,吃完之后,立即把这四个碗给洗了~~【饿汉】=》着原创 2022-04-18 07:57:38 · 337 阅读 · 0 评论 -
JavaIO--总结 File 类的用法和 InputStream, OutputStream 的用法
🚩Java 中操作文件本节内容中,我们主要涉及文件的元信息、路径的操作,暂时不涉及关于文件中内容的读写操作。Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。注意,有 File 对象,并不代表真实存在该文件🔴File 概述我们先来看看 File 类中的常见属性、构造方法和方法属性构造方法方法...原创 2022-04-15 22:46:02 · 526 阅读 · 0 评论 -
JavaEE初阶----总结锁策略,CAS 和 synchronized 优化过程
⭐️常见锁策略这个部分主要是一些面试常考的八股文,主要是为了应付面试。不必太纠结其细节。🔴注意:锁策略和普通的程序猿基本没啥关系和”实现锁“的人才有关系。这里所提到的“锁策略”,和 Java 本身没有关系,适用于所有和“锁”相关的情况。💥1.悲观锁VS乐观锁🔴悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。原创 2022-04-11 12:39:02 · 339 阅读 · 0 评论 -
JavaEE初阶----线程状态线程安全
今天在图书馆对面拍了一张自己非常喜欢的照片,看日落是一件很幸福的事情呀⭐️线程状态线程的状态是一个枚举类型 Thread.State,下面代码将会打印出所有的线程的状态。public class test{ public sta...原创 2022-04-05 09:49:09 · 308 阅读 · 0 评论 -
JavaEE初阶----Thread 类的基本用法
1.线程的创建具体看我前几天写过的一篇关于线程创建的博客:点击即可跳转。2.线程中断李四一旦进到工作状态,他就会按照行动指南上的步骤去进行工作,不完成是不会结束的。但有时我们需要增加一些机制,例如老板突然来电话了,说转账的对方是个骗子,需要赶紧停止转账,那张三该如何通知李四停止呢?这就涉及到我们的停止线程的方式了。目前常见的有以下两种方式:通过共享的标记来进行沟通调用 interrupt() 方法来通知下面我们主要讲讲常用的interrupt方法:private static void原创 2022-04-04 22:27:25 · 344 阅读 · 0 评论 -
JavaEE初阶----实现创建线程的五种写法
1.通过继承Thread类的方式来实现public class test extends Thread{ //ctrl+O; @Override public void run() { System.out.println("我是一个线程"); } public static void main(String[] args) { test test1 = new test(); test1.start(); }原创 2022-04-02 23:39:14 · 280 阅读 · 0 评论 -
Java----实现多线程数组求和.
import java.util.Arrays;import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class test { public static void main(String[] args) throws Execution原创 2022-04-01 23:38:21 · 1438 阅读 · 0 评论 -
Java实现数据结构----希尔排序
七大基于比较的排序之插入排序-希尔排序原理(主要思想是分组)主要思想的步骤如下:比如有15个数据,首先先分为5组,每一个小组内部进行直接插入排序,排好之后,再分为3组,每一组内部继续进行直接插入排序,排好之后,把全体看作一组,进行直接插入排序。希尔排序可以认为是直接插入排序的进化版本,因为如果数字量特别大的话,直接插入排序可能就并没有那么好了,因此我们加入希尔排序来解决这样的问题。这里就会有一个非常严重的问题存在,这里是分组为5,3,1。如果有100个,200个数据呢?也是分为5,3,1这样吗?原创 2022-04-01 17:23:27 · 314 阅读 · 0 评论 -
JavaEE学习--多线程初阶-进程调度基本过程
什么是进程/任务(process/tesk)?我们电脑中的.exe文件,如果我们不去双击运行它的话,他只会静静的躺在你的硬盘空间里,也就是说在我们双击它之前,它不会对我们的系统产生任何影响。操作系统是如何是管理进程的呢?总感觉文章不连贯,于是便添加了这一节,首先进程其实内部还是有很多东西的,并不是我们表面看到的皮毛,其次,如果想弄清楚进程调度的过程,必须要清楚进程在操作系统中扮演的角色。由于是理解性的知识,文字有点多,耐心看完必有收获。第一步,先描述一个进程(明确出一个进程上面的一些相关属性)首原创 2022-03-31 16:48:40 · 1113 阅读 · 4 评论 -
Java-笔试每日一题错题---3月22
迎面痛击第二题做过一次的题目还能错也没谁了参考答案:本题考查==的含义,对于两个引用变量,只有他们指向同一个引用时,==才会返回true。题目中"admin"指向堆内存字符串常量池里admin的地址,而String类的方法都是通过创建新的对象也就是new String()的方式返回的,因此userId.toLowerCase()指向的是这个字符串对象在堆内存中的地址。如果题目中isAdmin方法返回值更改为return userId.toLowerCase().equals("admin");,原创 2022-03-26 11:23:55 · 380 阅读 · 0 评论 -
Java-牛客-牛牛组队-3月21
牛牛组队题目描述:import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while(scanner.hasNextInt()){ int n= scanner.nextInt(); int [] a=new int[n*3];原创 2022-03-26 10:04:31 · 1084 阅读 · 0 评论 -
Java-牛客简单题
我是真菜啊。。。题目描述题解:排序后遍历数组,因为排序过所以同一个数字都会堆在一起。。。。。。。查找完一个数字后更容易查找下一个数字的数量原创 2022-03-23 22:23:33 · 336 阅读 · 0 评论 -
Java实现数据结构----插入排序直接插入排序
七大基于比较的排序之插入排序-直接排序直接插入排序-原理主要步骤:1.先假设第一个元素已经排好序2.然后依次取出还需要进行排序的下一个元素,也就是排序完成的元素后面的下一个元素,取出下一个元素,设为待插入元素,在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于待插入元素,将该元素移到下一位置。3.重复步骤2,直到找到已排序的元素小于或者等于待排序元素的位置,插入元素4. 重复2,3的步骤,完成排序。这样说可能还是有很多人不理解,那就画图来说明一下吧:实现性能分析折半插入排原创 2022-03-14 18:10:36 · 1700 阅读 · 0 评论 -
java-牛客简单题
NC32 求平方根描述:实现函数 int sqrt(int x).计算并返回 x 的平方根(向下取整)数据范围: 0 <= x < 2^{31}-10<=x<231−1要求:空间复杂度 O(1)O(1),时间复杂度 O(logx)O(logx)题解如下:import java.util.*;public class Solution { /** * * @param x int整型 * @return int整型原创 2022-02-22 17:35:11 · 749 阅读 · 0 评论 -
Java-启蒙篇
import com.sun.org.apache.xpath.internal.objects.XString;import java.util.ArrayList;import java.util.Arrays;class student{ private String name; private String classes; private double score; public student(String name, String classes,原创 2022-01-18 21:08:03 · 201 阅读 · 0 评论 -
Java中包-继承-组合-多态-抽象类知识点总结
导航目录认识包将类放到包中包的使用继承背景继承的语法是怎样的组合多态抽象类接口认识包包 (package)是组织类的一种方式.使用包的主要目的是保证类的唯一性.在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。为了解决上述问题,Java 引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问原创 2022-01-15 19:45:41 · 461 阅读 · 0 评论 -
java异常知识点总结
目录导航什么是异常为什么要使用异常异常的基本用法关于异常的处理方式调用栈异常处理的基本流程如何抛出异常关于finally使用的注意事项Java中异常的 体系如何使用自定义的异常类throws&&throw什么是异常在生活中很多事件并非总是按照我们自己设计的意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末和女朋友去郊游,计划从学校出发→到达目的→烧烤→回家。但是不巧的是今天突然就下起了大雨,当你准备烧烤时候突然天降大雨,只能终止郊游提前回学校。“突然下大雨”是一种异常情况,你原创 2021-12-22 21:24:00 · 484 阅读 · 0 评论 -
Java String字符串和整型int的相互转换
Java String字符串和整型int的相互转换string类型转换成int类型Integer.parseInt(str)Integer.valueOf(str).intValue()int类型转换成string类型String s = String.valueOf(i);String s = Integer.toString(i);String s = "" + i;string类型转换成int类型String 字符串转整型 int 有以下两种方式:目前我们只需要知道Integer是 int 基本原创 2021-11-21 10:21:15 · 335 阅读 · 0 评论 -
Java foreach语句的用法
Java foreach语句用法使用如何使用Java1.5出现的foreach语句foreach语句for循环foreach语句的使用注意事项如何使用Java1.5出现的foreach语句foreach在遍历数组、集合方面,foreach 为开发者提供了极大的方便。foreach 循环语句是 for 语句的特殊简化版本,主要用于执行遍历功能的循环。foreach语句foreach 循环语句的语法格式如下:for(数据类型 变量名:数组) { 需要执行的语句块;}举一个简单的例子:原创 2021-11-21 09:38:36 · 10071 阅读 · 0 评论 -
Java初识(零基础起步)
Java初识1.Java是什么为什么总有人说Java是最好的语言Java是最好的语言吗?简单介绍JDK,JRE,JVMJava开发环境安装零基础运用基本DOS命令让程序跑起来1.Java是什么官方解释:Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布原创 2021-10-12 08:07:51 · 512 阅读 · 0 评论