- 博客(60)
- 收藏
- 关注
原创 盛最多水的容器
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water
2021-01-06 08:02:18 204
原创 SQL优化日记1
先看下最初写的SQLSELECT * FROM yq_user u WHERE u.user_code IN ( SELECT DISTINCT c.cour_tcode FROM yq_course c INNER JOIN yq_resume r ON c.cour_tcode = r.resume_code WHERE c.cour_course = '4' AND c.cour_grade = '8' AND r.re
2020-12-03 22:54:05 165
原创 docker部署springboot项目并访问宿主机文件
--本文主要记录docker部署项目过程以及访问宿主机文件资源的方式一、手动部署需要提前说明的是,本人的开发环境为Window环境,而生产环境为Centos,所以对应的文件路径也需要区分。1、第一步是配置文件的配置(配置内容仅作为举例)application.ymlspring: profiles: active: dev---spring: profiles: active: prodapplication-dev.yml#appli.
2020-11-08 18:35:06 3441
原创 JVM中对象的内存布局及访问定位
一、对象的内存布局在JVM中,对象主要是存储在堆内存的,其中分为三个部分:对象头、实例数据和对齐填充。对象头对象头包括两类信息。第一类:Mark Word。用于存储对象自身的运行时数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。这部分的数据长度在32位和64位的虚拟机中分别是32byte和64byte。并且这一部分数据官方成为Mark Word。Mark word的存储内容会随着对象的状态变化而改变。已32位虚拟机为例,对象在无锁状态下,有25比.
2020-10-26 22:45:02 193
原创 JVM对象创建过程
对象的创建在JVM中一般包括几个步骤:1、符号引用检查。符号引用是存储在常量池中的,符号引用对应的是一个类,JVM首先会根据符号引用判断对应的类是否已经经过相应的类加载过程,如果为执行类加载,则需要进行类加载。2、内存分配。接下来JVM会在堆中划分出一块区域用来存储对象实例。需要注意的是所需分配的对象内存大小在类加载的过程就已经确定了。内存分配主要有两种方式,指针碰撞和空闲列表。选择哪种分配方式取决于Java堆是否规整。假设Java堆是规整的,即被对象占用的内存在一边,空闲内存在另一半,中间放一个指
2020-10-21 23:30:33 121
原创 volatile可见性原理
volatile是并发编程中重要的角色之一,通常会被比作轻量级的synchronized。volatile有三大特性:可见性、原子性和有序性。本文主要介绍volatile的可见性原理。被volatile修饰的变量通过编译器编译成汇编指令后,指令当中会出现一个Lock前缀。而这个lock一般的作用就是保证数据的一致性,执行这条指令时一般有两个动作:1、将缓存行的数据写回到内存当中2、使其他处理器中缓存了该内存地址的缓存行无效。我们知道处理器运作的时候一般都是操作缓存而不是直接操作内存,同时,多线程
2020-10-21 22:16:03 290
原创 The runtime data area model of JVM
了解运行时数据区模型是认识Java虚拟机的重要前提。虽然说JVM甚至说较为常用的HotSpot虚拟机本身就有自动分配和管理内存的功能,但是学习JVM是为了能够在出错的时候甚至在优化的时候能够由开发人员自己去处理,虚拟机提供的自动内存管理只能在合适或通常情况下是没问题的。运行时数据区又称为Java虚拟机运行时数据区,它的大体模型结构如下图所示运行时数据区其实就是一块内存区域,按照不同的类型和功能进行划分。主要有程序计数器,虚拟机栈,本地方法栈,方法区和堆。按照线程的使用情况可以分为线程私有和线
2020-10-14 23:52:04 313
原创 CentOS7虚拟机网卡配置
宿主机:Windwos10虚拟机:VMware Workstation Pro虚拟机系统:CentOS7首先需要在虚拟机上安装好CentOS7系统,安装好跳过此步一、首先点开虚拟机设置,查看网络连接方式,本人使用的是NAT模式,关于这几种模式大家可以自行百度了解二、菜单栏中点击编辑-->虚拟网络编辑器选中NAT模式,不勾选DHCP自动分配IP,自定义子网IP,需要与子网掩码对应接着点解NAT设置设置网关IPDNS设置三、启
2020-09-15 08:15:44 1305
原创 SpringCloud-Config动态配置中心
在微服务应用中,甚至在一个拥有复杂结构的微服务及分布式应用中,开发难度和运维难度都大大增加。其中最重要的就是配置文件的维护。一般情况下,每一个微服务都需要配置一个application配置文件,以不同场景为例,分为开发环境,测试环境,正式环境等。每一次变更都需要一个个修改并重启服务,操作繁琐并且容易出错。SpringCloud-config是统一的服务配置中心,可以实现一处更新,处处更新。直接撸起来(本次服务注册中心采用Eureka)一、创建并配置config-center服务端config.
2020-09-14 08:07:43 411
原创 Spring组件注入为null问题
今天写业务的时候突然遇到一个Spring组件注入为null的问题,其实早在之前有一次就遇到过了,一直没处理,今天终于发现问题记录一下。原先我只是为了使用建造者模式构造一个对象并调用目标方法,具体情况如下其中的http()为静态方法,用于创建SimpleTransfer实例。如下所示一开始并没有问题,但是后面为了封装服务调用接口及相关的参数,我又需要引入一个组件,以ConnectionBaseUtil为例先看一下ConnectionBaseUtil这里的ConnectionBa
2020-09-07 21:12:55 644
原创 Linux-命令篇
——本片博客仅用于记录学习,内容来自讯方 智汇云校教材Linux系统架构Linux系统组成结构:Linux系统=内核+shell+文件系统+(应用程序)目录结构常用目录:/boot 存放系统引导必须的文件,包括内核,启动配置/bin,/sbin 存放各种命令程序/dev 存放硬盘,键盘,鼠标,光驱等各种设备文件/etc 存放Linux.
2020-08-05 23:15:18 149
原创 按序执行
题型:多线程难度系数:简单题目:有三个目标方法,用于打印出不同的结果。现提供三个线程,分别执行不同的方法,需按一定的顺序执行这三个方法。示例:1、输入: [1,2,3]输出: "onetwothree"解释:有三个线程会被异步启动。输入 [1,2,3] 表示线程 A 将会调用 one() 方法,线程 B 将会调用 two() 方法,线程 C 将会调用 three() 方法。正确的输出是 "onetwothree"。2、输入: [1,3,2]输出: "onetwot.
2020-07-16 22:56:34 231
原创 SpringCloud篇之手写轮询算法(Ribbon轮询算法)
本片主要介绍SpringCloud中基于netflix 的Ribbon负载均衡中的轮询机制。Ribbon不同于Nginx,Ribbon是本地负载均衡,而Nginx是客户端负载均衡,作用点不同。Ribbon主要是对服务接口调用的一种负载机制。在Ribbon中,以IRule作为负载策略。其中默认的是轮询机制,本篇即模仿Ribbon手写一个轮询算法。先来看看IRule的继承关系其中的RoundRobinRule就是轮询策略下面我们开始手写一个轮询策略首先事先做好我们的基本环境,这...
2020-07-16 20:08:58 935
原创 Docker 镜像加速---让你体验飞一般的感觉
本文介绍的阿里镜像加速相信很多小伙伴初识docker或者不经常使用,都会为docker pull镜像的速度操心。通过在网上寻求答案,终于找到一种真正能过提高速度的方法,步骤十分简单1、到阿里应用中心注册账号注册过的小伙伴可以跳过这一步2、在搜索栏输入docker搜索镜像,进入容器镜像服务进入之后按提示创建自己的镜像仓库3、配置镜像加速配置完成后就可以试验一下了,命令刚输入,镜像就拉取成功了,这体验飞起!!...
2020-06-27 16:11:28 244
原创 Docker容器mysql安装及远程连接
目录一、Docker安装、配置及mysql容器镜像下载二、运行mysql容器三、进入mysql容器实例四、防火墙添加端口权限五、更改mysql编码规则六、远程连接一、Docker安装、配置及mysql容器镜像下载(参照CentOS7安装docker及配置)二、运行mysql容器docker run --name mysql01 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql--name自定义名字,
2020-05-27 14:47:51 266
原创 CentOS7安装docker及配置(解决docker拉取镜像超时)
目录一、下载docker二、更改docker仓库镜像地址一、下载docker(参考阿里云docker-ce安装指南centos部分) 启动docker服务//启动服务systemctl start docker//开机自启systemctl enable docker查看docker版本docker --version或者docker version二、更改docker仓库镜像地址1、创建daemon.json空白文件t...
2020-05-27 11:16:40 1085
原创 CentOS7 之 mysql 安装
目录一、配置yum源二、官网下载mysql rpm三、安装mysql1、删除Mariadb2、安装mysql rpm到yum中3、对mysql版本进行选择4、安装mysql,使用yum进行安装四、配置mysql1、开启mysql服务2、修改数据库密码3、数据库访问设置4、mysql编码设置五、远程连接本地mysql在Linux上安装程序其...
2020-05-08 15:56:32 156
原创 CentOS7配置yum网络源
这里使用SecureCRT工具进行操作进入阿里云centos镜像站1、备份原有的CentOS-Base.repo到/etc/yum.repos.d/目录下,也可移动到自定义目录下mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载新的CentOS-Base.repo到/...
2020-05-05 21:33:21 484 1
原创 springboot 自定义配置文件的加载及导入
一、配置文件的加载/* * 加载自定义配置文件数据 */@PropertySource(value)自定义创建targetData.properties接着在po包下创建一个实体类userpublic class User { private String name; private Integer age; private Integer ...
2020-04-18 23:36:15 1345
原创 springboot 全局配置文件
目录springboot的两种配置文件yaml的三种写法springboot的两种配置文件springboot提供了两种配置文件的支持,分别是: -application.properties -application.yml配置文件路径为:src/main/resources/application.yml或src/main/res...
2020-04-18 17:46:14 1429
原创 springboot应用打包jar并运行
我们知道springboot其实就是对spring框架的整合,同时简化spring的应用。其中方便之一就是不需要自己配置tomcat服务器,也不需要达成war包,只需要打包成可执行的jar包,并通过java -jar name.jar即可部署程序并运行。接下就是对springboot应用打包及运行的介绍1、在pom.xml中添加打包插件<!--将应用打包成可执行的jar包-...
2020-04-18 15:42:31 642
原创 JAVA日志--log4j(源码分析)
日志级别log4j有6个日志级别:fatal(严重)-->error(错误)-->warn(警告)-->info(运行信息)-->debug(调试)-->trace(追踪)日志级别从左到右依次递减一、不使用配置文件步骤:首先通过BasicConfigurator.configure()初始化默认的配置信息,接着创建日志记录器,最后输出日志。和JUL日志...
2020-04-14 18:03:32 599
原创 JAVA日志--JUL
日志级别:OFF(关闭)-->SEVERE(严重)-->WARNING(警告)-->INFO(信息)-->CONFIG(配置)-->FINE(详细)-->FINER(较详细)-->FINEST(非常详细)-->ALL(打开)日志级别从左到右一次递减,系统默认配置是INFO级别,表示INFO级别以上的才可以输出。OFF和ALL代表日志的最高和最低级...
2020-04-14 13:26:47 304
原创 Mysql 导入文件错误 Incorrect string value:for column 'order_ad.....解决
一、中文字符串数据导入失败在导入外部数据库的时候发现此错误,数据库是可以导入的,但是部分数据会丢失。从错误中找到对应的列,发现此字段中的内容为中文字符串,由此可知,是中文字符串无法导入导致此表的内容数据无法成功导入。解决方法:修改数据库编码首先通过命令:show variables like '%char%'; 查看字符集设置然后修改为utf8,除了文件系统编码和最后一行...
2020-04-07 11:59:42 2458
原创 mvc:interceptor中mvc:mapping path路径设置
规定拦截以特定字符或后缀结尾的url://规定拦截以.a结尾的url//前缀必须以 /** 形式开头<mvc:mapping path="/**/*.a"/>
2020-03-27 14:33:35 3082 1
原创 spring框架下基于websocket握手的拦截器配置(HandshakeInterceptor)
本次博客为记录小程序开发过程中遇到的问题,总结一些经验!对于拦截器的配置,相信很多人都会碰到坑,当然遇到的坑越多,你的技能提升的越快,我觉得是对的。做项目是可以提升一个程序员的技能,考验开发能力的最好方法之一。下面直接进入正题:本次拦截器的配置主要是要实现在websocket握手前,对用户信息的验证及筛选。在本系统中原先已实现了登录验证的拦截器,即判断小程序请求头中是否存在登录态...
2020-03-25 11:10:12 14409 1
原创 Android studio 3.5.3版本gradle文件下载慢问题 (一直sync)
这两天重新下载了Android studio准备学习Android,可是发现如今这个版本的Android studio好像用起来不像以前那样顺畅了,刚下载就遇到一个大问题,如图所示,红色的提示部分,“Attribute android:layout_height is not allowed here”在网上找了很久一直没有解决。但其实很简单,看了几个大佬的方法后发现成功解决了问题...
2020-02-16 21:59:37 3370 2
原创 Java继承中构造器的定义(this,super的问题)
继承是对已有的类的扩展,它继承了父类所有的属性和方法(私有属性和方法同样继承了,但是不能使用)。在类的定义中,需要通过构造器初始化,在创建对象时,new的其实就是构造器,而构造器分为有参构造器和无参构造器。this用法:1、在程序中产生二义性时,应该使用this来区分。比如区分全局变量和局部变量。普通方法中,this总是指向调用该方法的对象;构造器中,this指向正要初始化的对象。...
2020-02-04 16:13:14 354
原创 修改windows桌面右键菜单的内容
1、首先打开注册表(win+r输入regedit)2、找到HKEY_CLASSES_ROOT,在其目录下依次找到 Directory\Background\shell3、在shell上右键选择项,命名为你所要添加的应用的名称4、以pycharm为例,在其右侧默认字符串值更改数据,数值数据自定,作用是在桌面右键菜单中显示所要表达的文字,如图:点击确定,然后在空白区域右键在新建一个...
2019-12-23 00:31:15 2737
原创 哔哩哔哩小助手程序
历经两个多星期的实验作业终于完成了,在此记录一下自己的学习过程以及学习心得。说实话,对于python初学者来说,入门其实挺简单的,当然前期也会遇到很多的问题,比如‘idle中调用anaconda中的库’、自定义模块创建、以及相关的库的学习等等。当然,时间证明一切,坚持就是胜利,克服枯燥终究会挺过去的,哈哈哈哈!首先,此次网络爬虫选取的网站是哔哩哔哩官网(在此之前的一次爬虫实例:网络游戏排名...
2019-12-19 23:30:28 560
原创 哔哩哔哩小助手(GUI)
参考文档:http://effbot.org/tkinterbook/参考哔哩哔哩小助手程序运行代码:#BiliTkinterimport tkinter as tkimport requestsimport jsonfrom PIL import Image,ImageTkimport numpy as npimport matplotlib.pyplot as...
2019-12-19 23:29:44 354
原创 哔哩哔哩视频信息爬虫(实时爬取)
结合哔哩哔哩小助手程序爬取思路:自定义模块构建及框架设计:文件目录:__init__.py:#__init__"""浏览json数据videoinfo = [ data['aid'], # av号 data['view'], # 播放...
2019-12-19 23:11:39 4128 3
原创 python noncocal语句
nonlocal 语句的作用是对外层函数变量值的改写,它必须应用于嵌套函数中,并且只能作用于嵌套函数中,例如以下结构中则超出了nonlocal的作用域def main(): def A(): name = 'abc' def B(): nonlocal name #此时nonlocal只能作用于A()中的...
2019-11-21 13:25:41 157
原创 python 中 if 语句理解
if判断语句通过判断选定的条件而做出不同的动作1、if+True/Flaseif True: print("True")else: print("False")输出结果当然是True.2、if+变量flag = Trueif flag: print("True")else: print("False")这种方式可以理解为:...
2019-11-21 12:47:29 1261
原创 网络游戏排名爬取(总结)
网页源代码:以下为此次爬取全部代码:import requestsimport bs4from bs4 import BeautifulSoupimport redef main(): a = [] #定义空列表 url = "http://top.baidu.com/buzz?b=62" html = getHTMLText(url)...
2019-11-05 09:57:04 1290 1
原创 Python format()格式:中文对齐问题
: <填充> <对齐> <宽度> , <精度> <类型> 引导符号 填充单个字符,表示所创槽区域空余部分的填充 < 左对齐 > 右对齐 ^ 居中 槽的设定输出宽度 数字的千位分隔符适用于整数和浮点数 浮点数小数部分的精度或字符...
2019-11-03 23:20:27 13430 7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人