自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 go-i18n

简单举例使用go-i18n国际化组件

2023-07-07 17:14:00 799 5

原创 判断两数组有没有交集

​ 根据 mask |= 1 << 3这个表达式,首先将数字1左移3位(1 << 3),然后将结果与。根据 mask |= 1 << 2 这个表达式,首先将数字1左移2位(1 << 2),然后将结果与。按位与操作,得到的结果为2(二进制表示为0010)。由于结果不等于0,所以存在共同的位,即。的值为6(二进制表示为0110)。通过位运算生成掩码,再通过按位与的结果判断是否有交集。的值为10(二进制表示为1010),进行按位或操作,并将最终结果赋值给。进行按位或操作,并将最终结果赋值给。

2023-05-26 16:12:01 377

原创 go语言压缩文件

压缩指定目录下的指定文件

2022-12-12 17:55:11 467

原创 判断list集合之间的是否包含的方法

判断list集合之间是否包含的方法

2022-08-19 11:10:31 1697

原创 JSON与Java之间的转换

JSON与Java对象之间的相互转换

2022-08-12 10:22:06 1435

原创 stream流的常用方法

Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream中间操作:·每次返回一个新的流,可以有多个。终端操作:每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。Streamstream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。stream不会改变数据源,通常情况下会产生一个新的集合或一个值。......

2022-08-04 00:00:00 13203 3

原创 JUC并发编程的进阶之路

并发编程以及一些底层原理

2022-07-29 18:25:26 145

原创 线程池的学习总结,非常不错

文章目录线程池线程池的执行流程线程池中的队列线程池的拒绝策略execute 与 submit 的区别关闭线程池线程池任务多,任务简单,为了减少频繁创建销毁线程开销可以使用线程池,预先创建一部分线程,重复使用,减少创建销毁开销在 JDK5 版本中增加了内置线程池实现 ThreadPoolExecutorpublic class ThreadPoolExecutor extends AbstractExecutorService{public ThreadPoolExecutor(int coreP

2021-07-27 21:44:18 108

原创 并发编程的简单总结

文章目录并发编程线程多线程线程创建方式线程状态并行与并发多线程目的多线程并行问题Java内存模型(JMM)为什么会出现?JMM并发编程核心问题——可见性,原子性,有序性可见性原子性有序性总结volatile关键字如何保证原子性锁JUC——原子变量CASConcurrentHashMapJava中锁的分类乐观锁悲观锁公平锁非公平锁可重入锁读写锁(ReadWriteLock)分段锁自旋锁共享锁独占锁锁的几种状态Synchronized 实现ReenTrantLockSynchronized 实现ReenTran

2021-07-27 21:35:09 652

原创 缓存穿透、缓存击穿、缓存雪崩

文章目录缓存穿透、缓存击穿、缓存雪崩缓存处理流程缓存穿透缓存击穿缓存雪崩总结缓存穿透、缓存击穿、缓存雪崩缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果缓存穿透查询的数据在数据库中并不存在,缓存中没有,仍然去数据库中查询,从而可能压跨数据库。如果有人恶意攻击,查询没有的数据,缓存将相当于失效了。数据库没有,缓存没有解决办法:使用布隆过滤器(BloomFilter)或者压缩 filter

2021-07-27 17:53:42 167

原创 redis删除机制

redis删除机制定时删除创建定时器,时间到了就自动删除优缺点:对内存好,但对CPU并不友好(因为单线程)惰性删除在获取key值时,检查是否过期,过期了则在本次获取时删除;如果过期了,但是并没有获取,仍不删除优缺点:对cpu友好,对内存很不友好(容易积压)定期删除每隔一段时间,对数据库进行一次检查,删除过期键,由算法决定删除多少过期键和检查多少数据库优缺点:是以上两种删除的折中;如果删除太频繁,将退化为定时删除,如果删除次数太少,将退化为惰性删除注:无论这个key值删没删除,外界都查不到

2021-07-27 17:43:42 278

原创 redis数据类型总结

redis数据类型redis支持五种数据类型:string(字符串)hash(哈希)list(列表)set(集合)zset(sorted set:有序集合)string(字符串)string 是 redis 最基本的类型,一个 key 对应一个valuestring 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如 jpg图片或者序列化的对象string 类型是 Redis 最基本的数据类型,string 类型的值最大512MB例如: SET ke

2021-07-25 21:20:28 89

原创 JVM结构——类加载

JVM结构——类加载1 类加载子系统的作用​ 类加载器子系统负责从文件系统或者网络中加载 class 文件, class 文件在文件开头有特定的文件标识(字节码文件都以 CA FE BA BE 标识开头)。class Loader 只负责 class 文件的加载,至于它是否可以运行,则由 ExecutionEngine 决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是 class 文件中

2021-04-22 18:15:20 68

原创 JVM概述

JVM概述JVM:Java Virtual Machine,也就是Java虚拟机所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统JVM是通过软件来模拟Java字节码的指令集,是Java程序的运行环境JVM功能通过 ClassLoader 寻找和装载 class 文件解释字节码成为指令并执行,提供 class 文件的运行环境进行运行期间的内存分配和垃圾回收提供与硬件交互的平台特点:一次编译到处运行自动内存管理自动垃圾回收功能现在的

2021-04-22 15:56:28 123

原创 关于线程学习的小总结

程序、进程、线程程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。进程((process)就是正在执行的程序,从Windows角度讲,进程是含有内存和资源并安置线程的地方.线程(thread):进程可进一步细化为线程,是一个进程内部的最小执行单元(执行任务).线程与进程的关系一个进程可以包含多个线程,一个线程只能属于一个进程,线程不能脱离进程而独立运行;每一个进程至少包含一个线程(称为主线程);在主线程中开始执行程序, java程序的入口main()方

2020-12-27 10:51:54 96

原创 网络编程(TCP\UDP的客户端与服务端)

网络编程**目的:**就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换,直接或间接地通过网络协议与其它计算机进行通讯。两个主要问题:如何准确地定位网络上一台或多台主机 IP找到主机后如何可靠高效地进行数据传输 网络传输协议网络通信协议OSI参考模型TCP/IP参考模型TCP/IP参考模型各层对应协议应用层,表示层,会话层应用层HTTP、ftp、telnet、DNS…传输层传输层TCP、UDP…网络层网络层IP、ICMP

2020-12-11 17:31:40 477

原创 关于IO流的一些简单理解以及整理

File类File类是java.io包中很重要的一个类File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等File对象无法操作文件的具体数据,即不能直接对文件进行读/写操作构造方法摘要方法原型说明File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例File

2020-12-10 16:46:31 96

原创 HashSet与TreeSet的一些使用方法以及异同

HashSetpackage com.ff.javaCollection.Day3;import java.util.HashSet;import java.util.Set;import java.util.TreeSet;/** Set接口继承了Collection接口* Set中所存储的元素是不重复的,但是是无序的, Set中的元素是没有索引的** set接口有两个实现类:HashSet和TreeSet* HashSet:HashSet类中的元素不能重复,即彼此调用equ

2020-12-02 18:46:13 433

原创 ArrayList与LinkedList的一些基本使用方法与异同

ArrayListpackage com.ff.javaCollection.Day1;import java.util.ArrayList;public class ArrayListDemo extends ArrayList { public static void main(String[] args) { ArrayListDemo c=new ArrayListDemo(); //Collection c=new ArrayList();

2020-11-25 17:26:42 149

原创 浅谈集合(容器)的一些使用方法以及各种接口

集合(容器)什么是集合都存放于java.util包中集合存放的都是对象的引用,而非对象本身。我们称集合中的对象就是集合指集合中对象的引用通俗的说,集合就是一个放数据的容器,准确的说是放数据对象引用的容器集合创建的概述集合,数组都是对多个数据进行存储的结构,简称java容器说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储数组在存储多个数据方面的特点:一旦初始化以后,长度就确定了数组一旦定义好,其元素的类型也就确定了,我们也就只能操作指定类型的数据了比如:Str

2020-11-25 16:48:05 172

原创 一些异常的小总结,非常受用

异常概念在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)根据异常在编译时是否被检测来分,异常可以分两类:受检异常(CheckedException)与非受检异常(UnCheckedException)非受检异常不能在编译时检测到。非受检异常包括运行时异常(Exception)和错误(Error)。​ 错误指的是致命性错误,常常无法处理。根据异常严重性可以分为可处理的异常和错误异常​ 异常以类的形式封装,程序可以

2020-11-18 16:53:45 103

原创 关于String类的一些个人小总结

String类概述字符串是由多个字符组成的一串数据(字符序列)的字符串常量,值改变后会重新创建一个新的对象有两种创建形式:String s = "abc";//创建对象时,先在常量池检测是否有相同的值,若没有,就在堆中创建一个字符串对象//值在常量池中,第二次创建对象时,若常量池已存在值,则直接让引用变量指向第一个//字符串对象//特点:JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象String s = new String("abc ");//一概在堆中创建新对象,而不管

2020-11-08 18:05:36 93

原创 关于冒泡排序的简单代码

冒泡排序冒泡排序基本思想:把第一个元素与第二个元素作比较,如果第一个比第二个大,则交换他们的位置,接着继续比较第二个和第三个元素的大小,如果第二个比第三个元素大,则交换位置……每一对相邻的元素做同样的比较,从开始到最后,这样交换下来之后,排在最右的元素将会是最大的那个数,import java.util.Arrays;/** 冒泡排序* */public class BubbleSort { public static void main(String[] args) {

2020-11-02 20:37:51 419

原创 抽象类与接口

抽象类如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样用abstract修饰的类就是抽象类如果某个类中包含有抽象方法,那么该类就必须定义成抽象类如果一个类是抽象类,但不一定有抽象方法构造方法和静态方法不可以修饰为abstract抽象方法抽象方法是一种特殊的方法:它只有声明,而没有具体的实现抽象方法必须用abstract关键字进行修饰如

2020-10-30 16:41:57 126

原创 面向对象的三大基本特征

面向对象的三大基本特征封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的特殊方法来实现对隐藏信息的访问和操作优点隐藏类的实现细节方便加入控制语句方便实现修改只能通过规定方法访问具体表现属性使用private权限方法使用public权限public class Demo{ private String name; public String getName (){ return name; } public

2020-10-30 16:19:27 118

原创 继承

父类程序Animalpackage day5Demo1;public class Animal {//创建一个父类 private String name; private int age;//定义两个私有变量 public Animal(){ super(); System.out.println("动物的无参构造方法"); }//无参构造方法 public Animal(String name,int age){

2020-10-25 18:39:57 77

原创 CSS的简单使用

CSS概述CSS是Cascading Style Sheets(级联样式表)CSS是一种样式表语言,用于为HTML文档控制外观,定义布局。例如,CSS涉及字体、颜色、边距、高度、宽度、背景图像、高级定位等方面可将页面的内容与表现形式分离,页面内容存放在HTML文档中,而用于定义表现形式的CSS在一个.css文件中或HTML文档的某一部分CSS与HTML的关系HTML是网页内容CSS定义页面的样式基本语法基本语法-行内样式表行内样式表,又有人称内联样式、行间样式、内嵌样式

2020-10-25 16:09:59 1488

原创 JavaSE第三章笔记(面向对象2)

对象与引用Java 语言中除基本类型之外的变量类型都称之为引用类型Java中的对象是通过引用对其操作的class Car{ String color; String name; String model;}Car car= new Car();/***通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作*1)右边的“new Car()”,是以Car类为模板,调用Car类的构造函数,在堆空间里创建一个Car类对象。*2)左边的“Car car”创建了一个C

2020-10-24 21:37:08 134

原创 HTML

HTML概述HTML指的是超文本标记语言 (HyperText Markup Language)​ 超文本:是指页面内可以包含图片、链接、声音,视频等内容​ 标记:标签(通过标记符号来告诉浏览器网页内容该如何显示)用HTML语言把我们需要显示的内容显示在浏览器上,但是HTML语言本身并不显示Web浏览器根据不同的HTML标签,解析成我们看到的网页HTML基本语法声明html4的文档声明html5的文档声明 如果不声明解析

2020-10-20 18:30:40 92

原创 JavaSE第三章笔记(面向对象1)

面向过程和面向对象的设计思想面向过程procedure oriented programming 缩写 POP(注重于解决步骤)分析出解决问题所需要的步骤,然后把步骤一步一步实现面向对象object oriented programming 缩写 OOP面向对象的编程语言(宏观整体上的设计)以分类的方式进行思考和解决问题,面向对象的思维方式适合于处理复杂的问题。面向对象的思想符合人类的认知习惯Java类一个模板,描述一类事物的属性和行为​ 注: **属性 :**类的成员

2020-10-18 21:58:10 556 1

原创 JavaSE第一章笔记

为什么是Java?Java语言用途广服务器程序Android应用软件工具嵌入式领域大数据技术Java语言发展史1995年正式确立2004年9月Java1.5发布2009年SUN公司被Oracle公司(甲骨文)收购Java语言的特点开源简单、高效面向对象平台无关性交互式特性多线程机制多态的内存管理机制安全性[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WunaKKG9-1602774549685)(C:\U

2020-10-16 01:11:50 142

原创 javaSE第二章笔记

IDE的使用(IntegratedDevelopment Environment )集成开发环境用于提供程序开发环境的应用程序包括代码编辑器,编译器,调试器和调试图形界面注释单行注释 // Ctrl+/多行注释 /* */ Ctrl+Shift+/文档注释 /**​ * 用于类、方法、属性功能进行说明,调用时可以提供其功能介绍​

2020-10-14 18:25:52 282 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除