自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM类加载、类加载机制

一、类文件结构① 魔数:确定这个文件是否为一个能被虚拟机接收的class文件。② class文件版本:class文件的版本号,保证编译正常的执行③ 常量池:存放两大常量(字面量和符号引用)④ 访问标志:标志用于识别一些类或者接口层次的访问信息,即包括访问修饰符(public、private,protected,default)、类的类型(abstract,interface)、final等⑤ 当前类索引,父类索引:类索引用于确定这个类的全限定类名,父类索引用于确定这个类的父类的全限定类名⑥ 接口

2021-07-14 16:30:09 237 2

原创 Java对象是否可回收、判断方法

Java对象是否可回收一、对象可回收的条件1、对象的所有实例都已经被回收,堆中已经不存在对象的任何实例2、加载该类的classLoader已经被回收3、该类对应的对象在任何地方都没有被引用,也无法在任何地方通过发射访问该类当一个对象满足了这三个条件的时候,也可能不可回收,若该对象满足这三个条件,在垃圾回收之前,该对象执行了finalize方法,有可能让对象再次被引用,从而实现自救,不被当成垃圾回收。但是每一个对象只能自救一次,如果该对象执行了一次finalize方法,则下次就不能再次被执行了。

2021-07-13 16:59:59 1929

原创 JVM垃圾收集器

JVM垃圾收集器新生代收集器(serial、ParNew、parallel scavenge)老年代收集器(serial old,parallel old 、CMS)整体(G1)1、serial收集器串行收集器,单线程收集,每次收集过程都会(stop the world),即收集过程中会暂停用户的线程工作,直到他收集结束,才会继续用户线程运行。采用收集算法:新生代采用复制算法老年代采用标记整理算法2、ParNew收集器ParNew收集器是serial收集器的多线程版本,即多线程进行垃

2021-07-13 16:22:47 241

原创 JVM垃圾回收算法

JVM垃圾回收算法一、标记-清除算法标记清除算法,首先标记可回收的对象,然后对标记的对象进行清除。缺点:会产生大量的空间碎片,不利于内存的更好利用二、复制算法将内存空间一分为二,每次使用其中的一半,每次进行垃圾回收的时候,将存活的对象复制到另一边的内存区域,然后清除掉原先内存中的未存活对象缺点:每次都将内存一分为二,可用空间少优点:不会产生空间碎片三、标记-整理算法与标记清除算法类似,不过该算法是标记存活的对象,后续不是直接清除,而是将标记的存活对象移动到一端,然后清除掉端边界以外的可

2021-06-15 22:23:08 125

原创 JVM内存区域(运行时数据区)

JVM内存区域(运行时数据区)根据JVM规划,运行时的内存区域划分为五个部分,分别是堆、方法区、程序计数器、虚拟机栈、本地方法栈,其中在jdk1.8之后方法区被移除,取而代之的是元空间(直接内存)这是jdk1.6的示意图这是jdk1.8的示意图下面介绍一下这五部分的主要信息一、堆(线程共享)堆是被所有线程共享的一块内存区域,在虚拟机启动的时候创建,主要用于存放对象的实例,堆的内存大小可通过参数-Xmx 和-Xms 来控制,当堆中没有内存分配个实例,就会出现out of memoryError

2021-06-15 22:05:46 219 1

原创 springboot从Redis中取出缓存的对象,但却出现同一类型对象无法转换为同一类型的对象问题java.lang.ClassCastException:

问题:从Redis中取出的缓存对象,出现同一类型转换错误最近在写Springboot项目,用到Redis缓存对象User,通过key取出来后的value并赋值给同一类型的对象,但是却出现了一个神奇的报错,同一对象无法转换为同一对象的报错,这个问题我还是第一次见,刚开始真的百思不得其解java.lang.ClassCastException: com.blog.bean.User cannot be cast to com.blog.bean.User解决:开始试着找错误,在test上看能不能打

2021-04-25 22:16:57 945 2

原创 Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘username‘

Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘username’ :已解决项目框架:springboot+mybatis问题:进行登陆验证时,传入username和password,使用mybatis框架进行查询语句中包含多个参数,会报错找不到参数解决:dao层接口方法的参数上需加@param(“username”) 和@param(“password”)原dao接口代码User check( String us

2021-04-07 11:02:30 699

原创 Ubuntu18.04安装教程

感谢大佬的教程,一套下来行云流水https://blog.csdn.net/qq_31939617/article/details/100114546Ubuntu18.04安装教程准备工作下载VMware Workstation Pro下载Ubuntu18.04光盘映像链接https://pan.baidu.com/s/1n7NpHxeG-0KjwX9taidrbg 提取码:hadi第一部分开始安装Ubuntu1、点击创建虚拟机2、选自定义(高级),点下一步3、默认,下一步

2021-03-28 22:54:11 1045 2

原创 如何查看Linux系统是Ubuntu还是centos

如何查看Linux系统是Ubuntu还是centos执行以下命令即可lsb_release -a如下:本人的是centos

2021-03-08 20:23:11 1134

原创 解决Ubuntu与Windows之间无法复制粘贴问题

问题window上复制的内容无法粘贴在Linux上环境window64位Ubuntu18.04解决1、直接在命令行执行以下命令(亲测有效且简单)sudo apt-get autoremove open-vm-tools //卸载已有的工具sudo apt-get install open-vm-tools //安装工具open-vm-toolssudo apt-get install open-vm-tools-desktop //安装open-vm-tools-desktop

2021-03-04 11:38:02 20338 21

原创 Java反射

Java反射一、什么是反射反射主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。一个类有多个组成部分,例如:成员变量、方法、构造方法等,反射就是加载类,并解剖出类的各个组成部分。二、class类1、除了int等基本类型外,Java的其他类型全部都是class(包括interface)。例如:StringObjectRunnableException2、class是由JVM在执行过程中动态加载的。JVM在第

2021-01-27 15:23:33 101 1

原创 Spring AOP

Spring AOP(面向切面编程) Aop:面向切面编程一、什么是AOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码

2021-01-27 14:23:23 77

原创 Spring 基于XML的IOC

Spring IOC相关知识点(控制反转)作用:为了解决程序之间的耦合性,我们使用了IOC,使用IOC后,我们想要获取的对象依靠的其它对象会通过被动的方式传送进来,可以直使用Spring容器中已注入的创建的对象,而不是我们自己自己创建对象(new一个对象)。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间耦合性高,难于测试;有了IOC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整

2021-01-19 23:40:42 92

原创 操作系统 外卖餐厅问题 PV 操作

使用信号量和PV操作实现外卖餐厅有三个员工进程协同活动问题描述:一个快餐厅有3类职员:(1)服务员:接受顾客点菜;(2)厨师:准备顾客的饭菜;(3)出员:出餐。每个职员可被看作一个进程,使用信号量和PV操作实现外卖餐厅有三个员工进程协同活动。问题分析:餐厅接受顾客点餐到厨师做菜到出纳员出餐,三者之间的同步关系为:①服务员接受顾客点菜后,向厨师发送信号;②厨师接受信号后开始准备顾客的饭菜,厨师准备完饭菜之后,向出纳员发送出餐信号;③出餐员出餐,出餐员出餐之后唤醒服务员继续接受顾客点菜问

2020-12-29 20:38:33 1572

原创 操作系统 吃水果放水果问题 PV操作

使用信号量和PV操作实现父亲、母亲、儿子、女儿4人,通过一个可以容纳1个水果的盘子进行削水果吃水果的活动协同。问题描述:桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放 橘子,儿子专等着吃盘子中的橘子,女儿专等着吃盘子中的苹果。只有盘子空时,爸爸或妈妈才 可向盘子中放一个水果。仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出水果。 用PV操作实现上述过程。问题分析:桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿

2020-12-26 21:12:03 15256 5

原创 操作系统 公交车司机与售票员进程协同活动问题 PV操作

使用信号量和PV操作实现公交车上司机进程和售票员进程协同活动问题分析:在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:① 售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,② 在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步,售票员开车门的动作也必须与司机停车取得同步。在本题中,应设置两个信号量:S1、S2。S1表示是否允许司机启动汽车,其初值为0;S2表示是否允许售票员开门,其初值为0。

2020-12-26 20:19:45 15362 2

转载 spark-deep-learning spark和深度学习

前言Spark成功的实现了当年的承诺,让数据处理变得更容易,现在,雄心勃勃的Databricks公司展开了一个新的愿景:让深度学习变得更容易。 当然牛好吹,也是要做些实际行动的,所有便有了spark-deep-learning项目。这件事情已经有很多人尝试做了,但显然太浅了,DB公司则做的更深入些。原理要做深度学习,肯定不能离开TensorFlow, MXNet之类的。 spark-deep-learning也是如此,尝试和Tensorflow进行整合。那么如何进行整合呢? 我们知道Tensorflo

2020-12-13 15:37:43 654

原创 汇编div除法指令

汇编div除法指令div除法指令要点除数:有8位和16位两种,存放在一个寄存器或内存单元中。被除数:默认放在AX或(DX和AX)中,如果除数为8位,被除数则为16位,默认放在AX中;如果除数为16位,那么被除数就为32位,存放在DX和AX两个寄存器中,高16位存放在DX,低16位存放在AX。两数相除结果:如果除数是8位,则除法操作的商存放在AL,除法操作的余数存放在AH;如果除数为16位,则商存放在AX,余数存放在DX。格式:div regdiv 内存单元例子:除数8位,被

2020-12-08 23:17:34 8146

原创 汇编转移offset,jmp ,jxcz,ret,retf,call

汇编转移指令,可以修改IP,或同时修改CS和IP的指令。1、操作符offset功能:取得标号的偏移地址例子:assume cs:codesgcodesg segment start:mov ax,offset start //相当于mov ax,0(start处的偏移地址为0) s:mov ax,offset s //相当于mov ax,3(s处的偏移地址为3)codeseg endsend start2、jmp short 标号 指令功

2020-12-08 21:18:46 1000

原创 Mybatis报错URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

Mybatis报错URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)本人是直接复制之前写过的xml文件,然后出现此报错原因:(统一资源标识符没有注册)解决方法:1、点击File->Settings2、点击Languages & Frameworks3、点击Schemas and DTDs,并点击右边的+号4、将报错的那个链接(我这里是http://mybatis.o

2020-12-05 15:30:21 647

原创 Mybatis解决实体类属性名与数据库列名不对应的方法

Mybatis解决实体类属性与数据库列名不对应的方法实体类属性名数据库列名执行查操作结果发现只有username能成功封装(那是因为MySql在Windows系统不区分大小写),其他都无法成功封装这里实体类属性与数据库列名不一致导致在查询结果集无法封装信息到对应的实体类解决方案一:起别名,将查询结果起别名, 数据库列名 as 实体类名 (直接,但是麻烦,需要每次查询都起别名)解决方案二:使用resultMap配置查询结果的列名和实体类的对应关系并在使用时,调用resultMa

2020-12-05 14:40:20 598

原创 汇编语言检测点9.2,9.3

检测点9.2补全编程,利用jcxz指令,实现在内存2000H段中找查第一个值为为0的字节,找到后,将它的偏移地址存储在dx中。assume cs:codecode segment start: mov ax,2000H mov ds,ax mov bx,0 s: ____ ____ ____ ____ jmp short

2020-12-02 21:08:02 1677 1

原创 王爽汇编语言检测点 9.1

(1)若要使程序中的jmp指令执行后,CS:IP指向程序中的第一条指令,在data段中应该定义哪些数据?assume cs:code data segment ?data ends code segment start: mov ax, data mov ds, ax mov bx, 0 jmp word ptr [bx+1] code endsend start解答:本题中,执行jmp word ptr

2020-12-02 20:50:43 2684 2

原创 java String类

java String类中各方法char charAt(int index);获取index位置的字符boolean contains(CharSequence s);判断字符串中是否包含某个字符串boolean endsWith(String endStr);判断是否是以某个字符串结尾boolean equalsIgnoreCase(String anotherString);忽略大小写比较两个字符串是否相等byte[] getBytes();转换成byte数组int indexOf(Stri

2020-12-01 21:27:52 75

原创 java移位运算

java移位运算int A=60;//(即二进制00111100)有符号数移位“<<” 按位左移运算符, 左操作数按位左移右操作数指定的位数,将该数乘以2^n,n为移位的位数。 A << 2 //得到240,将00111100向左移两位,得到 1111 0000,即将60*2^2=240“>>” 按位右移运算符。左操作数按位右移右操作数指定的位数,即将该数除以2^n,n为移位的位数。A >> 2 //得到15,将0011110

2020-12-01 21:21:25 180

原创 Spark常用RDD操作

spark常用RDD操作,操作包括两种类型,即转换(Transformation)操作和行动(Action)操作一、转换操作1、filter(func),筛选出满足函数func的元素,并返回一个新的数据集例如:scala> val lines=sc.textFile(“file:///usr/local/spark/mycode/rdd/word.txt”)scala> val linesWithspark=lines.filter(line => line.contians(“

2020-11-29 10:50:57 1845

原创 Hashmap中的getOrDefault()方法

Map.getOrDefault()方法Map.getOrDefault(Object key, V defaultValue))当map集合中存在该key时,就使用这个key对应的value值,如果没有就使用默认值defaultValue。例子:Map<Integer,Integer> map=new HashMap<Integer,Integer>();map.getOrDefault(10,0)+1);当map中有key:10时,将key:10对应的values加

2020-11-28 12:46:14 330

转载 Spark +深度学习:如何使用SparkNet进行分布式深度神经网络训练

原文链接:http://www.dataguru.cn/article-11647-1.html摘要:现如今,深度学习是机器学习中最热门的一种方法,与此同时,它还在继续取得显著成果。深度神经网络在不断地被证实是一门既有用又具有创新性的学科技术。该技术已经证明了其在之前停滞不前的研究领域中取得重大进展的 …分析现如今,深度学习是机器学习中最热门的一种方法,与此同时,它还在继续取得显著成果。深度神经网络在不断地被证实是一门既有用又具有创新性的学科技术。该技术已经证明了其在之前停滞不前的研究领域中取.

2020-11-26 20:26:57 1550

原创 操作系统,独木桥问题,PV操作

问题独木桥问题1:东西向汽车过独木桥,为了保证安全,只要桥上无车,车过桥,待一方的汽车全部过完后,另一方的汽车才允许过桥。请用信号量和PV操作来写出汽车过独木桥问题的同步算法。思路首先对于东西两侧的车辆而言,桥是一个互斥资源,而对东西两侧各自而言,每辆车上桥是同步关系,东西两侧的车辆在抢到这互斥资源后只有最后一辆车通过了独木桥才释放。bash semaphore wait,mutex1,mutex2; mutex1=1;//东侧车辆的互斥信号量 mutex2=1;//西侧车辆的互斥信号量 w

2020-11-25 20:41:35 7532 4

转载 Spark与hadoop的区别

spark是什么?spark与hadoop的区别sparkSpark 是加州大学伯克利分校 AMP(Algorithms,Machines,People)实验室开发的通用内存并行计算框架。Spark 在 2013 年 6 月进入 Apache 成为孵化项目,8 个月后成为 Apache 顶级项目。Spark 以其先进的设计理念,迅速成为社区的热门项目,围绕着 Spark 推出了 SparkSQL、SparkStreaming、MLlib 和 GraphX 等组件,逐渐形成大数据处理一站式解决平台。

2020-11-24 20:22:41 323

原创 spark toDS()或toDF()无法使用,mport spark.implicits._爆红

spark中ToDS()爆红无法使用解决一:导入包import spark.implicits._解决二:若import spark.implicits._爆红则问题如下:创建sparkSession.builder()时对应的变量名要与import spark.implicits._中的spark相同,若不相同,则会报错,如下创建sparkSession.bulider时对应的变量名为sparks,而import spark.implicits._中为spark,因此导入爆红改为如下图

2020-11-17 22:07:28 1738

原创 spark scala 中udf无法使用

UDF:User-defined Function,用户自定义函数。这里用scala代码为例子:1、定义udf函数hours:这里以本人正在编写的UDF,完成时长计算,将毫秒转换为小时单位为例子val hours: (Long, Long) => Long = (pickUptime:Long, dropDffTime:Long)=>{ val duration=dropDffTime-pickUptime val hours=TimeUnit.HOURS.conv

2020-11-17 21:48:54 512

原创 由于/bin不在PATH环境变量中,故无法找到该命令,无法编辑修改bashrc文件

如何解决"/bin /usr/bin 不在PATH 环境变量中,故无法找到该命令"的问题呢,出现这种问题一般都是自己在加环境配置的时候出现字符错误或者路径错误导致的如下图所示:一、直接在命令行执行export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin/:/sbin:/bin:/usr/game:$PATHexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin/:/

2020-09-20 21:47:04 2004

原创 spark、hadoop启动命令及web端口号

spark启动命令:cd /usr/local/sparksbin-start-all.shspark进入shell命令行:cd /usr/local/sparkbin/spark-shellhadoop启动命令:cd /usr/local/hadoop./sbin/start-dfs.shspark启动后访问web页面端口:http://localhost:8080hadoop启动后访问web页面端口:http://localhost:9087...

2020-09-20 17:03:32 621

原创 putty连接Window并使用

putty在Linux与Windows中连接使用putty文件资源提取链接:https://pan.baidu.com/s/1sG1-cekrjOxoFGjT0OfV5w提取码:f7mbputty使用教程(本人使用Linux为Ubuntu):步骤1:打开putty:步骤2:输入要连接的虚拟机的IP地址,其左边port(端口号)默认为22:查看虚拟机的IP地址,可在其终端输入ip addr,如下图所示,虚拟机的ip地址为192.168.154.145:步骤3:输入ip地址后,点击open

2020-09-11 16:08:30 2255

原创 Linux常用基础命令

1、ls命令,list的缩写,查看当前文件夹包含的文件,且可以查看文件权限(包含目录,文件夹,文件权限)常用参数搭配:(1)、ls -a 列出目录所有文件,包含以 . 开始的隐藏文件(2)、ls -A 列出除 . 及 …的其他文件(3)、ls -r反序排列(4)、ls -t 以文件修改时间排序(5)、ls -s以文件大小排序(6)、ls -h以易读大小显示(7)、ls -l 除了文件名以外,且将文件权限、所有者、文件大小等信息列出2、cd命令,切换目录(1)、cd /,如进入us

2020-08-29 16:04:45 179

原创 Window系统命令行切换目录等命令

命令行打开快捷键win+R,输入cmd目录切换:1、从一个盘切换到另一个盘,如从C盘切换到D盘,直接输入“d:”。d:2、切换到所在盘的某个文件目录,如test文件夹,“cd test”。cd test或者从D盘直接切换到test目录下的new目录,输入“cd test/new”cd test/new3、返回上一级目录,输入“cd …”cd ..4、回到根目录,输入“cd \”cd \5、查看目录内容,输入“dir”dir新建、删除目录文件或文件夹:(1)、新建文件

2020-08-28 23:09:55 6531

原创 Linux中vim编辑器保存退出命令

Linux(Ubuntu)vim编辑器保存退出命令进入vim编辑器,输入 i 进入编辑状态按esc退出编辑常用的保存退出命令如下:1、:w(保存编辑的文件内容,但不退出vim编辑器)2、:w!(强制写文件,即覆盖原有的文件,如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入)3、:q(未做任何编辑,无需保存文件,直接退出vim编辑器)4、:q!(强制退出vim编辑器,适用于已写入内容但不需要保存放弃该内容时)5、:wq(保存编辑的文件并退出vim编辑器

2020-08-27 22:17:26 11350

原创 ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘ * Linux无法正常登陆mysq解决方法*

ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘ *Linux无法正常登陆mysq解决方法*l原因:Ubuntu下载mysql时没有显示设置用户密码,导致使用命令 mqsql -u root -p时无法识别本人解决方法:步骤1:执行以下代码,找到下载mysql时系统自动创建的用户及账号密码(因执行cat /etc/mysql/debian.cnf查看文件时显示权限不足,因此在前面加sudo)sudo cat /etc/my

2020-08-27 21:50:07 248

空空如也

空空如也

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

TA关注的人

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