自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (2)
  • 问答 (10)
  • 收藏
  • 关注

原创 配置虚拟机ip(Centos7.5)

如果乱搞了你的vmware虚拟网卡8,可能会导致本地ping不通虚拟机的ip,设置步骤如下:打开上述的位置,双击ipv4,如下:ip地址是:和设置的虚拟机的ip地址在同一网关下但是不要相同,有冲突,我设置的虚拟机的ip是192.168.20.151,所以这里只要不冲突的前提下随便设置。子网掩码和vmware虚拟网络编辑器中的相同即可。DNS服务器的配置和/etc/sysconfig/network-scripts/ifcfg-en32中设置的DNS相同即可,这样即可ping通。注:以上的解决

2021-11-06 20:18:44 676 4

原创 zookeeper分布式锁

当多个客户端对zk集群中的资源进行访问时,为了保持资源访问的有序性和稳健性,在每个客户端进行访问时需要在访问期间保持其对该份资源的独占性,用分布式锁来实现此步骤,当某进程访问资源结束后将会释放掉锁以供下一个节点对数据的访问。分布式锁的实现思路:接收到客户端的请求后在/locks节点下创建一个临时带序号的节点。判断当前创建的节点是否为序号最小的节点,是则获取到锁,否则监听其上一个节点。因为默认是当前/locks节点中序号最小的节点优先获取到锁。获取到锁并处理完业务后该节点释放掉锁(该序号最小的节点被

2021-11-05 22:17:06 1409

原创 Hive数据仓库

Hive:计算框架,本质是将HQL转化为MapReduce程序,是一个基于Hadoop的数据仓库工具,可以将结构化的数据映射为一张表,提供类sql查询功能。特点:hive处理的数据存储在HDFS中hive分析数据底层的默认实现是MapReduce执行的任务运行在yarn上操作接口采用了类sql语法将hql语句解析为MapReduce运算执行延迟高,吞吐量大,适合离线的大数据运算,不适合小数据的计算处理支持用户自定义函数,根据自己的需求实现业务函数概述:数据仓库的内容是读多写少,hiv

2021-10-21 00:15:44 5578

原创 Hbase——javaAPI

上一篇文章主要讲解了Hbase的核心架构基础理论知识,本篇文章为Hbase的应用章节,主要讲解Hbase——JavaAPI的使用DDLpackage com.tommy.test;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.Admin;import org.apache.hadoop.hbase.client

2021-10-13 19:14:12 391

原创 Hbase

分布式,可扩展,支持海量数据存储的NoSQLNoSQLNoSQL数据库。实现了在hdfs的CRUD,特别实现了在hdfs上的改、随机写操作。存储形式:逻辑上分析存储的格式类似于表结构存储。实际上底层的物理存储形式是K−VK-VK−V形式的存储,类似多维度mapmapmap。Hbase的逻辑结构:对表横向划分分为不用的regionregionregion,纵向划分为不同的列族,不同的列族存储在不同的文件夹中,实际存储的数据是storestorestore,行键RowKeyRow KeyRowKe

2021-10-10 16:38:12 411

原创 centos虚拟机配置静态IP

在阅读本文章之前默认您已完成了虚拟机的下载和启动,并默认掌握了vim的基本使用方法。配置静态ip的方式第一步:首先检查虚拟机是否检测到虚拟网卡:如果没有检测到虚拟网卡无论后续的操作如何正确都无法配置成功。打开终端,进入文件夹:cd /etc/sysconfig/network-scripts,看当前路径下是否存在此文件:如果有,进入后续操作,反之可能是下载的镜像版本和用vmware安装的版本不同导致的虚拟网卡无法检测,修复方式是重新下载一个新的。。第二步:查看本机电脑的ip地址,假设你的主机

2021-09-27 20:17:32 362

原创 acwing查看做题总数

1.配置类库pip install repip install requestspip install lxml如果有就不用安装了import reimport requestsfrom lxml import etreeclass Spider(object): def __init__(self): self.base_url = 'https://www.acwing.com/problem/{}/' self.headers = {

2021-09-14 21:45:48 6265 4

原创 服务器的部署

部署环境为阿里云的CentOs Linux镜像,没有选择Ubuntu,Ubuntu系统内没有各种指令,需要从头配置yum指令。连接上xshell,连接上xftp。xshell的连接应该都没有问题,关键在于xftp的连接,如果报错连接不上或者访问失败:打开配置:[root@bogon ~]# vi /etc/ssh/sshd_config 将# override default of no subsystems# Subsystem sftp /usr/libexec/opens

2021-09-04 11:20:05 194

原创 replace into和insert into的区别

官方文档:REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted. See Section 13.2.6, “INSERT Statement”.REPLACE mak

2021-08-19 18:15:48 343

原创 前后端分离项目自定义请求头CORS跨域问题

前后端分离项目中需要自定义请求头token安全的传输秘钥,前端的自定义秘钥会被;浏览器看做是一个跨域问题,如果不解决将会报CORS,检查后端的拦截器有没有错误:package com.tommy.common;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;pu

2021-08-13 19:46:08 1759

原创 优化MyBatis的foreach标签

dao层的mybatis查询中为了简便操作,已经为程序员封装了动态sql,其中便于处理in语句的就是大名鼎鼎的foreach标签,虽然直接在标签内部指定循环开始的头部,尾部,以及分隔符号,但是无奈何效率实在是太低了,数据量只停留在几百条还是能处理的,但是一旦上了数据量,查询的效率明显降低,他底层是循环拼接,这里经过多次我的调试,利用字符串拼接成sql的效率显然高于foreach的查询效率。封装一个类用来处理StringBuilder拼接sql,这样能保证sql语句的执行次数只有一次,查询效率相比myba

2021-08-12 15:25:00 391

原创 ssm无限递归异常

Method 'selectTypeDetails()' recurses infinitely, and can only end by throwing an exception出现这个异常的原因是由于你的错误代码导致的无限调用。解决办法:打开service层的接口,可能是由于service层忘记填写mapper的调用4而导致的异常...

2021-08-12 14:44:54 2292

原创 MyBatis类型转换异常

attempted to return null from a method with a primitive return type (int).解决办法:你要查询的返回值为null,但是用于接受查询结果的数据类型为基本类型,会导致这个异常。查询id可能为null,如果用int 接受如果出现了Null 的情况就会报这个异常,用Integer封装类型接受即可解决为null的问题。...

2021-08-07 09:25:11 601

原创 拦截器。。

拦截器:拦截器是springMVC中的一种,需要实现HandlerInterceptor接口。拦截器和过滤器类似,功能方向侧重点不同,过滤器是用来过滤请求参数,设置编码字符集等工作。拦截器是拦截用户的请求,做请求的判断处理。拦截器是全局的,可以对多个Controller做拦截,一个项目中可以有一个或多个拦截器,常用在登录处理,权限检查,记录日志。使用步骤:在定义类中实现HandlerInterceptor接口在springMVC配置文件中,声明拦截器,并制定拦截的请求uri地址,让框架知道拦截

2021-07-30 20:45:59 83

原创 springMVC开发步骤

新建maven工程加入pom依赖,springmvc依赖间接的把spring的依赖都加进来,jsp,servlet依赖在web.xml中注册springmvc框架的核心对象DispatcherServlet1)中央调度器,是一个servlet,他的父类继承了HTTPServlet2)DispatcherServlet也叫前端控制器,front controller创建一个发起请求的页面 index.jsp创建控制器类创建一个作为结果的jsp,显示请求的处理结果创建springmvc的配置文.

2021-07-22 19:50:01 99

原创 spring事务

思考一:当涉及到多张表的增删改和多个sql语句时,通常需要考虑使用事务,例如转账系统。需要考虑让多条sql语句同时成功或者同时失败。**控制事务,事务的代码应该放在哪里:**应该放在service类的业务方法上,因为业务方法会调用多个dao方法,执行多个sql语句。事务的隔离级别:mysql默认使用的是可重复度,oracle默认是读已提交。➢ READ_UNCOMMITTED:读未提交。未解决任何并发问题。➢ READ_COMMITTED:读已提交。解决脏读,存在不可重复读与幻读。➢ REP

2021-07-21 21:31:30 324 8

原创 spring-mybatis整合实现

加入的jdbc和mysql驱动依赖必须要和你的mysql的版本相匹配,否则将会报错。常用的pom依赖:GitHub项目文件:GitHub使用service插入数据:通过service的代码去访问dao @Test public void testServiceInsert(){ String config="applicationContext.xml"; ApplicationContext ctx = new ClassPathXmlApplic

2021-07-21 16:00:18 95

原创 MyBatis复习

mybatis的核心内容:mybatis框架的Dao代理mybatis框架的动态SQL先进行查询多条记录的操作selectList配置pom文件时加入的依赖:<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version>

2021-07-20 22:10:25 135 2

原创 maven换源

idea的maven默认是国外的源,所以在自动导入文件的速度很慢,更换为阿里云的源。打开setting.xml将内容替换为:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

2021-07-13 14:42:15 1535 1

原创 Spring

DI是IoC的技术实现DI:依赖注入,(Dependence injection)创建对象是由容器创建,只需要提供对象名即可实现对象的创建。String使用的DI实现了IOC功能,底层是使用了发射机制。

2021-06-28 21:26:42 184

原创 MySQL-SQL2

in后面的跟着具体的值,不是区间!!注意:in的用法和普通的不加in的用法一样,只不过可读性强(个人认为)例如:select ename, sal from emp where sal in (1000, 5000);上述语句指的不是查找出来工资在1000到5000之间的,而是工资为1000和工资为5000的!!若要查找区间的:SELECT ENAME, SAL FROM EMP WHERE SAL >= 1000 AND SAL <= 5000; +--------+..

2021-06-06 13:00:46 614

原创 HashSet和HashMap区别联系

通过阅读JavaJavaJava源代码,发现javajavajava的HashsetHashsetHashset和HashMapHashMapHashMap实质上是相同的,HashSetHashSetHashSet实际上就是hashmaphashmaphashmap的value值为nullnullnull 的情况,所以哈HashSet和HashMap有相同的存储元素的形式:无序不可重复。所以HashSetHashSetHashSet在存储元素时要和HashMapHashMapHashMap一样,重写equ

2021-06-03 20:20:33 264 1

原创 HashMap中put和get方法的底层详解

注意:Key和Value存储的不是值,而是对象地址的引用,说白了储存的是那个值的地址!!!!通过map.put(Key, Value)添加元素的底层实现:第一步 :将Key, Value封装到Node对象中。第二步:底层调用k的HashCode()方法返回Hash值,通过哈希算法得到一个数组的下标,如果数组的该位置处没有任何元素,那么就将该Node添加到数组的该位置,如果有元素,那么拿着该Node的Key和该数组位置的节点的Key进行equals()如果都为false,该节点被添加在链表的末尾,如果链

2021-06-03 18:52:04 1131 1

原创 Map接口中常用的方法

前言静态内部类的演示:package day02;import java.util.*;@SuppressWarnings({"all"})public class Fanxing { public static void main(String[] args) { Set<MyMap.MyEntry<String, Integer>> set3 = new HashSet<>(); }}class MyMap{

2021-06-03 15:58:46 347 1

原创 Vector底层实现原理

Vector底层数组的默认容量:10若越界了,则自动扩容,扩容的原理:是扩容前的两倍10–>20—>40—>80vector是线程安全的,现在使用较少。如何将非线程安全的ArrayList转换成线程安全的调用工具类:java.util.Collectionsjava.util.Collectionsjava.util.Collections注解:java.util.Collectionjava.util.Collectionjava.util.Collection是集合接口,而

2021-06-02 15:41:18 591 2

原创 JAVA-LinkedList双向链表底层实现

Node节点类,item代表节点储存的值,next代表本节点的下一个节点,prev代表本节点的上一个节点,里面有个构造方法,通过调用此构造方法给节点赋值。LinkedList类的局部变量,有三个参数,分别代表上一个,下一个和节点个数add方法,调用了linkLast方法,进入该方法:定义了一个节点类型的参数l,并把last赋值给他,新建了一个节点类型的参数,并调用node构造方法插入“a”:插入“b”:注意:随着新节点的插入过程,last和first分别一直指向双向链表的头结点和尾节.

2021-06-02 14:28:24 206 2

原创 List接口中常用方法及其ArrayList的构造方法剖析

List接口特有方法:有序可重复,有序是指存储进去的元素都有下标常用方法: void add(int index, Object element) Object get(int index) int indexOf(Object o) int lastIndexOf(Object o) Object remove(int index) Object set(int index, Object element)ArrayList扩容机制:Arraylis

2021-06-02 10:57:00 265

原创 关于Java集合中元素的删除问题详解

在集合遍历(迭代)过程中,不允许元素通过集合删除,可以通过迭代器进行删除因为在集合进行迭代过程中,不允许集合的结构发生改变import java.io.BufferedReader;import java.util.*;@SuppressWarnings({"all"})public class interate{ public static void main(String[] args) { Collection c = new ArrayList();

2021-06-02 09:13:31 619 1

原创 蒟蒻的JAVA的Collection-contains方法、remove方法底层实现

import java.util.*;import java.util.Collection;import java.util.Iterator;public class interate { public static void main(String[] args) { Collection c = new ArrayList(); String s1 = new String("asd"); c.add(s1); String s2 = new String.

2021-06-01 20:39:54 143 2

原创 java基础中的基础,简单中的简单

面向对象编程this指代当前对象,那个对象调用方法就是哪个对象,只能用在方法中,在方法中访问成员变量之前默认有个this。定义在类中方法外的变量称作成员变量,在方法中的变量成为局部变量,局部变量和成员变量是可以同名的,因为存储位置不同。成员变量和局部变量同名时,this不能省略,一般情况下是可以省忽略的。THIS用法:this.成员变量名---------------------访问成员变量;this()---------------------------------调用构造方法;

2021-05-31 21:08:21 164 4

原创 MySQL基本语句

在cmd中启动MySQL:在cmd中输入mysql -uroot -pYOUR_PASSWORD启动MySQL表: 表是数据库的基本组成单元,所有的数据以表格的形式组织,目的是可读性强。包括行和列:行被称为数据/记录(data)列被称为字段, 每一个字段包括:数据类型,字段名,相关的约束条件SQL语句的分类DQL(数据查询语言):数据查询,凡是select语句都是DQLDML(数据操作语言):insert delete update 对表中的数据进行增删改DDL(数据定义语言):creat

2021-05-22 11:10:38 121 1

原创 应用和分布式路由

应用:创建应用文件夹:python manage.py startapp app_name在settings.py中注册应用:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contr

2021-05-21 19:06:33 194 2

原创 静态文件

静态文件的加载配置:在settings.py中添加静态文件访问地址(默认就有)添加储存静态文件的路径:STATIC_URL = '/static/' #默认配置STATICFILES_DIRS = (os.path.join(BASE_DIR, 'files_name'))加载过程:直接地址访问,间接地址访问和动态模板访问:<body><img src="http://127.0.0.1:8000/static/picture.png/" width = "200px

2021-05-21 15:54:32 258

原创 模板的应用

Django的数据传输过程为:在浏览器地址栏内输入数据。数据找到settings内的主路由设置。进入urls.py后找到path进入url对应的视图函数直接response或者将数据传输到html模板response到浏览器界面简单网页计算器的制作:需要输入到文本框内并上传数据,为POST 请求方式每次计算完成后保存上一次计算时的数据代码:urls.pyfrom django.contrib import adminfrom django.urls import path, r

2021-05-21 09:01:57 113 2

原创 请求和响应

请求:浏览器端通过http协议向服务器端发送的数据。响应:服务器端接受到请求后作相应的处理后回复给浏览器端的数据。

2021-05-20 18:15:33 126 2

原创 反向解析URL

反向解析URL的应用:在模板中反向解析URL不会出现404,反向解析能让url一直保持正确匹配,就算修改了刷新一下网页也同样会动态匹配:urls.pyfrom django.contrib import adminfrom django.urls import path, re_path, includefrom . import viewsurlpatterns = [ path('test1/page1/', views.test1), path('test2/page

2021-05-20 11:42:53 624

原创 静态资源配置

Django将CSS,JavaScript脚本和图片等文件视为静态资源。在settings.py中默认的URL访问路径配置如下:STATIC_URL = '/static/'应该在Django项目的各个应用中创建一个与STATIC_URL同名的文件夹存放静态资源文件夹settings.py中的INSTALLED_APPS配置包含了“django.contrib.staticfiles”,他将用于管理项目中的静态文件项目实践:创建项目和应用D:\>django-admin startpr

2021-05-19 13:09:18 231 1

原创 Django

模板:在根的pratice1目录下创建一个文件夹:结构如上图所示:普通的输出方式:使用HttpResponse("Hello World"),使数据和视图混在一起,显示较为杂乱。def hello(request): return HttpResponse("Hello world ! ")如上,在创建的文件夹下创建一个模板,模板是一个文档,用于分离数据和视图的,创建runoob.html文件:# runboot.html:<h1>{{hello}}</h1&g

2021-05-18 21:24:00 180

原创 Django

创建项目:cmd窗口,创建一个储存项目的文件夹,在终端进入到这个文件夹,执行命令:django-admin startproject file_name,创建django成功,进入该项目文件夹,里面有一个自动创建的文件manage.py启动Django:进入到创建的Django项目文件夹内,在终端窗口内输入:python manage.py runserver启动成功,出现:Django自动创建的网页默认端口为8000端口,如果要指定端口为5000,将启动django语句改为:python ma

2021-05-15 21:48:47 321 1

原创 游戏更新

经过测试修改后,成功的将游戏《sing际争霸》的子弹设置为自定义的图片,效果图如下所示:更大杀伤力的子弹,及其图片之间更搭配= =源代码:import pygameimport sysfrom settings import Settingsfrom ship import Ship#1 from bullet import Bulletfrom bullet2 import Bulletclass AlienInvasion: def __init__(self):

2021-05-14 20:41:24 144 2

Collection集合继承结构图.pdf

纯手工绘图,整理不易,不喜勿喷

2021-05-31

Map集合的继承关系图.pdf

纯手工绘图,整理不易,不喜勿喷

2021-05-31

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

TA关注的人

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