自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小谷围最靓的仔

计算机小白的学习记录之路

  • 博客(48)
  • 收藏
  • 关注

原创 【笑傲Java面试笔记】容器、集合、映射

coding:请用 Iterable 实现一个随机序列产生数。coding:实现LRU缓存。

2023-04-13 15:30:29 176

原创 【异常】类型转换异常:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to XXX

对象没有在本地形成类型强引用,JVM没办法将当前对象关联到字节码文件

2022-11-22 19:25:55 1648 1

转载 【异常】java.lang.UnsupportedOperationException解决方法

Arrays的内部类 ArrayList 和 java.util.ArrayList 都是继承AbstractList,remove、add等方法在 AbstractList 中是默认 throw UnsupportedOperationException 而且不作任何操作。java.util.ArrayList 重写这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。产生的 List 中 add、remove 方法时报异常,这是由于。在项目中对 List 进行操作时报错。

2022-11-22 18:04:05 464

原创 【Bug】找不到org.apache.poi.ss.usermodel.Sheet的类文件

在java代码中,使用POI进行导出文件,代码无明显错误提示,但是编译运行时,会报“找不到org.apache.poi.ss.usermodel.Sheet的类文件”错误。

2022-11-21 20:47:01 3885

原创 【问题解决】解决SpringBoot 测试类无法自动注入@Autowired的问题

1. 报错类型1:空指针异常SpringBoot 整合 Junit 测试,测试代码如下:import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.dat

2022-04-08 19:24:54 2413

原创 error: Microsoft Visual C++ 9.0 is required

1. 背景项目使用 python 2.7,需要安装第三方库 skip32,在 Terminal 终端输入 pip install skip32 ,结果报错:error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27,并且报错中的网址打开发现下载地址失效了。2. 安装失败原因所安装的第三方库中包含 c/c++ 源码,安装过程中,平台会调用本地的编译器编译这些代码,当找不到适用于 Python 2.7

2021-11-16 17:31:08 8044

原创 【Python】面向对象

1. 基本术语类:用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。类变量:在类的内部,方法的外部。所有实例共享。实例变量:在类的内部,方法的内部,以 self.变量名 的方式定义的变量。数据成员:类变量和实例变量。方法:类中定义的函数。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写

2021-07-21 17:04:02 103

原创 【Java基础】基本数据类型、封装类、装箱、拆箱

1. 基本数据类型及其封装类基本类型大小(字节)默认值封装类byte1(byte)0Byteshort2(short)0Shortint40Integerlong80LLongfloat40.0fFloatdouble80.0dDoubleboolean-falseBooleanchar2\u0000(null)Character注意:boolean单独使用是占4个字节,在数组中又是

2021-06-08 19:06:37 490 2

原创 【集合】遍历 List 集合的几种方式

1. 初始化 List 集合List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");2. 遍历方式一:for循环最基础的遍历方式:for循环,指定下标位置,使用 List 集合的 get(i) 方法来获取元素。for(int i=0; i<list.size(); i++){ System.out.println(list.get(i));}方

2021-06-08 18:29:37 24220 2

原创 【集合】遍历 HashMap 的几种方式

在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的几种方式。1. 创建 HashMap首先新建 HashMap,代码如下:HashMap<Integer,String> map = new HashMap<>();map.put(1,"111");map.put(2,"222");map.put(3,"333");2. 遍历方式一:for-each循环 + entrySet()entrySet() 返回的是一个包含映射关系(键值对)的集合 ,类型

2021-06-06 14:46:14 160

原创 【Spring】学习笔记07 —— AOP

ddd

2021-05-09 09:55:42 105 1

原创 【Java基础】代理模式

1. 静态代理模式1.1 故事背景有一天,小明要结婚了,他有两种方式来完成结婚这件事。第一种就是小明亲力亲为,包揽婚礼所有事情。第二种就是找婚庆公司来帮忙筹办婚礼,小明只需要人来就行。这里的婚庆公司就是代理,婚礼的筹办过程就是代理模式的应用。在这个例子里,一共有3个角色:小明:真实角色,因为是小明要结婚。婚庆公司:代理角色,帮小明处理婚礼事宜。结婚(接口):这个是小明和婚庆公司都要做的事情,只是两者具体做的内容不一样。1.2 代码示例用代码来实现上述的静态代理模式的思想,如下:

2021-05-05 19:19:44 123

原创 【Spring】学习笔记06 —— 使用注解开发

1. 前提准备工作在 Spring4 之后,要使用注解开发,必须保证 aop 包导入成功。applicationContext,xml 配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co

2021-05-02 20:55:23 94

原创 【Spring】学习笔记03 ——DI 依赖注入

1. 概念依赖注入(Dependency Injection,DI)依赖:指 Bean 对象的创建依赖于容器;注入:指 Bean 对象中的所有属性,由容器来注入;2. 依赖注入的方式2.1 构造器注入这部分内容在【Spring】学习笔记02 —— IOC 控制反转 的第4小节(IOC 创建对象的方式)中讲过了,在此不赘述。2.2 set 方式注入使用 set方式注入,要求被注入的属性,必须有 set 方法。我们通过代码来学习 set 注入的用法:1、实体类 Address.javap

2021-04-30 21:38:32 107

原创 【Spring】学习笔记02 —— IOC 控制反转

1. IOC 雏形原始的业务实现方式我们原来的业务实现步骤是这样的:UserDao 接口UserDaoImpl 实现类UserService 业务接口UserService 实现类我们先用原来的方式编写一个简单的例子,如下:1、编写一个 UserDao 接口。public interface UserDao { public void getUser();}2、编写 UserDao 的实现类public class UserDaoImpl implements Us

2021-04-29 21:17:42 142

原创 【Spring】学习笔记01 —— 概述

发展历史2002年,Rod Jahnson 首次推出了 Spring 框架的雏形 interface21 框架。2004年,Spring 框架以 interface21 框架为基础,经过重新设计,发布了1.0正式版。学习过程要用到的几个重要网站官网官方下载地址GitHub源码优点Spring 是一个开源的免费的框架(容器)。Spring 是一个轻量级的、非侵入式的框架。控制反转(IOC),面向切面编程(AOP)。支持事务的处理,对框架整合的支持。Spring .

2021-04-29 10:16:29 136 1

原创 初次学习JVM

1. 什么是JVMJVM(Java Virtual Machine)是 Java 虚拟机,用于运行 Java 编译后的二进制字节码,最后生成机器指令。三大JVM:sun公司 HotSpotJRockitIBM J9 VM查看本机JVM版本:2. JVM所在的位置JVM是运行在操作系统之上的,与硬件没有直接的交互,但是可以用 JNI (Java Native Interface,Java本地方法接口)调用底层的硬件。3. JVM的体系结构简化版:详细版:4. 类加载器4.

2021-04-21 10:05:42 162 1

原创 【线程】JUC

Java真的可以开启线程吗?开不了,调用的本地方法,底层的C++,Java无法直接操作硬件。1. 前提所谓 JUC,其实就是 java.until.concurrent 工具包的简称。在阅读本篇博客之前,可以阅读 【Java基础】多线程 回顾以下基础知识点。进程、线程Java的1个进程默认有2个线程:main、GC并发、并行并发编程的本质:充分利用CPU的资源线程状态NEW:新生RUNNABLE:运行BLOCKED:阻塞WAITING:无限等待TIME_WAITIN.

2021-04-15 12:27:45 202

原创 【Java】单例模式

1. 单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。2. 介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点

2021-04-14 19:34:04 169

原创 【Java基础】多线程

1. 概念1.1 程序 vs 进程 vs 线程术语概念程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念 。进程是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位。线程通常在一个进程中可以包含若干个线程,一个进程至少有一个线程。线程是CPU调度和执行的单位。1.2 并发 VS 并行术语概念并发指两个或者两个以上事件在同一时间间隔内发生,即交替做不同事的能力,多线程是并发的一种形式。并行指两个或

2021-04-07 22:13:47 87

原创 【Java基础】Lambda表达式

1. 函数式接口任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。对于函数式接口,我们可以通过Lambda表达式来创建该接口的对象。2. 为什么使用Lambda内部类?避免匿名内部类定义过多。去掉一堆没有意义的代码,只留下核心的逻辑,让代码看起来更简洁。Lambda表达式实质属于函数式编程的概念。(params) -> expression [表达式](params) -> statement [语句](params) -> {statements}

2021-04-06 22:55:18 154

原创 【Java面试题】JVM

1、JDK、JRE、JVM关系?JDK(Java Development Kit):Java语言的软件开发包,包括 Java 运行时环境JRE。JRE(Java Runtime Environment)Java运行时环境,包括JVM。JVM(Java Virtual Machine):一种用于计算机设备的规范。Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以

2021-03-31 08:14:14 327

原创 【Java面试题】多线程

1、什么是进程?进程是系统中正在运行的一个程序,程序一旦运行就是进程。进程可以看成程序执行的一个实例。进程是系统资源分配的独立实体,每个进程都拥有独立的地址空间。一个进程无法访问另一个进程的变量和数据结构,如果想让一个进程访问另一个进程的资源,需要使用进程间通信,比如管道,文件,套接字等。2、什么是线程?线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。3、线程的实

2021-03-30 12:11:55 845

原创 【Java面试题】IO & NIO

1、什么是IO流?它是一种数据的流从源头流到目的地。比如文件拷贝,输入流和输出流。输入流从文件中读取数据存储到进程(process)中,输出流从进程中读取数据然后写入到目标文件。2、Java中有几种类型的流?按照单位大小:字符流、字节流。按照流的方向:输出流、输入流。3、字节流和字符流哪个好?怎么选择?绝大多数情况下使用字节流会更好,因为字节流是字符流的包装,而大多数时候 IO 操作都是直接操作磁盘文件,所以这些流在传输时都是以字节的方式进行的〔图片等都是按字节存储的)如果操作是需要通过

2021-03-16 17:43:09 1491

原创 【Java面试题】异常和反射

1、error 和 exception 有什么区别?error表示系统级的错误,是Java运行环境内部错误或者硬件问题,不能指望程序来处理这样的问题,除了退出运行外别无选择,它是Java虚拟机抛出的。exception表示程序需要捕捉、需要处理的异常,是由与程序设计的不完善而出现的问题,程序必须处理的问题。2、说出5个常见的RuntimeException?RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerExceptio.

2021-03-15 22:25:27 131

原创 【Java面试题】集合

1、Java集合框架的基础接口有哪些?Collection 为集合层级的根接口。一个集合代表一组对象,这些对象即为它的元素。Java平台不提供这个接口任何直接的实现。Set 是一个不能包含重复元素的集合。这个接口对数学集合抽象进行建模,被用来代表集合,就如一副牌。List 是一个有序集合,可以包含重复元素。你可以通过它的索引来访问任何元素。List更像长度动态变换的数组。Map 是一个将key映射到value的对象,一个Map不能包含重复的key:每个key最多只能映射一个value。一些其它的

2021-03-15 16:27:33 117

原创 【集合】HashMap 的底层原理(附部分源码 + 面试题)

从结构实现来讲,HashMap是数组+链表+红黑树实现的(JDK1.8 新增加了红黑树部分)。如下图所示:1、数据底层具体存储的是什么?从源码可知,HashMap类中有一个非常重要的字段,就是 Node[] table ,即哈希桶数组,明显它是一个Node的数组。具体源码如下://JDK 1.8static class Node<K,V> implements Map.Entry<K,V> { final int hash; //用来定位数组索引位置 final K k

2021-03-15 13:36:12 312

原创 【Java面试题】基础知识

1、java语言的三大特性封装继承extends继承后的子类自动拥有父类的属性和方法,但是注意,父类的私有属性和构造方法并不能被继承。子类也可以写自己特有的属性和方法,目的是实现功能的扩展。子类也可以重写父类的方法。多态:Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。多态需要向上转型(upcast),其中向上转型是由JVM自动实现的、是安全的的。但向下转型(downcast)

2021-03-13 23:01:36 616

原创 【Maven】安装配置、IDEA集成Maven环境

1. 下载Maven官网下载完之后解压到你想要存放的文件夹,如图: 注意:maven解压后存放的目录不要包含中文和空格!2. 配置环境变量MAVEN_HOME点击确认后完成添加 MAVEN_HOME 变量。Path完成后,一路点击 确认 完成环境变量配置。记住要点击确认关闭全部打开的窗口,不然环境变量配置失败。3. 检查 Maven 是否安装成功Ctrl + R 输入cmd打开命令窗口,输入 mvn -version 后回车,如果跳出版本信息,说明安装成功。4. 修

2021-03-07 20:05:09 251 2

原创 数据库学习笔记

第一章 绪论1、试述数据、数据库、数据库管理系统、数据库系统的概念。术语概念数据描述事物的符号记录数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。在数据库建立、运行和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进

2021-03-06 00:55:51 390 2

原创 计算机网络关键知识点记录

概念术语五层参考模型传输单元应用层报文传输层报文段网络层IP数据报,分组(IP数组报分片得到分组)数据链路层帧物理层比特流MTU,即最大传输单元,数据(有效载荷)部分的最大长度。IP地址是逻辑地址,MAC地址是物理地址。数据链路层1. 以太网帧的格式最常用的MAC帧就是以太网V2的格式,格式如下:上图中每个字段的含义如下表所示:字段含义前同步码用来使接收端的适配器在接收 MAC 帧时能够迅速调整时钟频率

2021-03-03 01:25:49 928

原创 【IDEA】2020.3.2版本的IntelliJ IDEA 新建项目HelloWorld示例(非Maven项目)

作为IDEA新手小白,我在网上找了好多教程,发现我的IDEA新建项目过程跟网上的不太一样,不知道是不是版本不一样的原因,特此记录第一步:New Project第二步:创建一个空项目就是到这一步,我的页面跟网上的教程不太一样,甚至出现了报错:Error: library is not specified,我刚开始以为是我的安装环境出了问题,后来看到有的博主说, 是因为从2020.2.2版本开始,添加功能模块更改到了项目右键菜单上,项目右键选择Add Framework Support 即可 。简而

2021-02-24 16:39:35 1908

原创 KMP算法

以下内容是我看尚学堂视频所做的学习笔记适合曾经学过KMP算法,理解大概原理但是写不出或者不太理解代码的同学,不适合KMP小白。1. 理论2. java代码实现2.1 求解next数组假设已经知道next[y]的取值为len,求next[y+1]的值。若P[len] == P[y],则next[y+1] = len + 1 = next[y] + 1;若P[len]≠P[y],则循环地执行len = next[len],直到 len==-1或者满足P[len] == P[y]为止。当.

2021-01-21 01:38:11 146 2

原创 AI实训(三):聚类算法、支持向量机算法

1. 聚类算法聚类概念:无监督问题:我们手里没有标签了聚类:相似的东西分到一组难点:如何评估,如何调参有个比较好玩的聚类算法可视化网站,可以方便理解聚类算法。k-meansDBSCAN1.1 K_means算法1、基本概念要得到簇的个数,需要指定K值(也就是分为K类)质心:均值,即向量各维取平均即可(K个质心)距离的度量:常用欧几里得距离和余弦相似度(先标准化)优化目标:min∑i=1K∑x∈Cidist(ci,x)2min \sum \limits_{i=1}^K \su

2020-07-29 04:22:10 2571

原创 AI实训(二):决策树与集成算法、贝叶斯算法

1. 决策树1.1 简单介绍树模型:决策树:从根节点开始一步步走到叶子节点(决策)所有的数据最终都会落到叶子节点,既可以做分类也可以做回归回归树:就是用树模型做回归问题,每一片叶子都输出一个预测值。预测值一般是该片叶子所含训练集元素输出的均值树的组成根节点:第一个选择点非叶子节点与分支:中间过程叶子节点:最终的决策结果决策树的训练与测试训练阶段:从给定的训练集构造出来一棵树测试阶段:根据构造出来的树模型从上到下去走一遍就好了一旦构造好了决策树,那么分类或者预测任务就很

2020-07-23 16:25:54 503

原创 Ubuntu16.04离线安装Pytorch

[版本说明]Ubuntu16.04cuda9.0python3.71. 下载离线包进入PyTorch官网找到自己需要的版本,我需要下载的pytorch版本是1.1.0打开这个网址后,根据自己的版本需要,点击下载网址上的cu表示该版本支持GPU1.1.0表示pytorch版本cp37代表python3.72. 安装pytorch进入PyTorch安装包的...

2020-02-10 12:50:37 2246

原创 Hadoop大数据分析实验(一)——HDFS基本操作

[实验目的]熟悉HDFS的相关基本概念;熟悉HDFS的基本操作。[实验原理]HDFS的全称为Hadoop分布式文件系统(Hadoop Distributed File System),是Hadoop的文件系统。HDFS对用户来说就如同单块磁盘,它其实是运行在Linux文件系统之上。其优点还包括:高容错性:可以处理磁盘损坏和机器宕机等等;能够存储大文件:文件大小可以达到TB甚至PB...

2020-01-28 20:31:17 4881

原创 JavaScript之运算符

通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位。赋值运算符通常,使用赋值运算符将一个常量值、另外一个变量的值或者表达式的值赋给变量。赋值语句本身是有值的,赋值语句的值就是等号(=)右边被赋的值。因此,赋值运算符支持连续赋值。算术运算符JavaScript支持所有的基本算术运算符,下面是7个基本的算数运算符:加法运算符:+(+还可以作为字符串的连接...

2019-11-28 18:40:42 209

原创 Spark大数据分析实验(三)——Spark网络日志分析

[实验目的]熟悉Apache Web服务器的日志文件格式;熟悉在Spark中分析Web服务器日志。[实验原理]服务器日志分析是Spark一个理想的应用场景。日志文件通常很大,Spark能够以低成本存储这些日志,同时提供简单而高效的方式进行分析。日志分析对于改善商业运营、建立推荐系统和欺诈检测都十分有用。1. 常见日志格式Apache Web服务器日志的每一行格式与下面的例子类似。...

2019-11-28 18:15:34 2317 7

转载 卡尔曼滤波,最最容易理解的讲解,找遍网上就这篇看懂了

我对卡尔曼滤波的理解:卡尔曼滤波就是把统计学应用到了滤波算法上。算法的核心思想是:根据当前的仪器 “测量值” 和上一刻的 “预测量” 和 “误差”,计算得到当前的最优量,再 预测下一刻的量。里面比较突出的是观点是:把误差纳入计算,而且分为预测误差和测量误差两种,通称为 噪声还有一个非常大的特点是误差独立存在,始终不受测量数据的影响均方误差是反映估计量与被估计量之间差异程度的一种度...

2019-11-02 16:05:12 4734

空空如也

空空如也

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

TA关注的人

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