自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux chmod

首先chmod 用于修改文件权限,使用命令 ll 查看文件列表,或者使用stat+文件名 可以查看其相应的权限 显示的形式为例如 rwx r- - r-- ,即所有者拥有读写执行的权限 ,同组人员和其他人都只拥有读的权限。eg: 比如一个文件原来的权限为 rwx r- - r-- ,即所有者拥有读写执行的权限 ,其他人都只有读的权限,现在要撤销所有者的写权限。具体意义 1 2 4 对应的分别是二进制中的 001 010 100,其对应的权限分别为 r _ _(读 )

2023-07-24 14:08:22 514

原创 WebService

​ 是一种服务导向的技术,通过标准的Web协议提供服务,目的是保证不同的平台的应用服务可以操作​ 从表面上看,webService 就是一个应用程序,向外界暴露出一个可以通过Web进行调用的方法的API,能用编程的方法通过Web调用来实现某个功能的应用程序就是说,对于不同平台之间WebService其实就是相当于微服务架构中Nacos 的作用,将必要的接口暴露出来,提供给其他平台使用,

2023-07-21 13:50:14 144

原创 找不到命令 ifconfig

一般使用linux 命令,使用ifconfig,出现未找到命令ifconfig 命令在 net-tools包中。

2023-07-17 13:38:14 253

原创 git版本控制

git版本控制

2022-06-18 22:33:38 220 1

原创 ADT和OOP

ADT和OOP

2022-06-18 22:29:29 124

原创 GRASP

GRASP

2022-06-18 22:23:58 107

原创 三种软件复用

三种软件复用

2022-06-18 22:12:11 1808

原创 zookeeper相关

zookeeperZookeeper 选举机制当启动的服务器没有超过半数以上那么,那么每启动一个服务器就会发生一次选举,而每次票数最多的就是相应myid 最大的那一个服务器,最终在 已启动的服务器超过半数的时候,就会成为 leader,在产生leader 之前,所有的服务器的状态都是 LOOKING 状态,而当产生之后,leader 的状态就是 leading , 而其他的就是following。而只要这个leader 没有宕机,那么接下来启动的服务器都时following集群非第一次启动

2022-04-27 12:29:24 125

原创 搭建 zookeeper 集群(使用多个Linux 虚拟机,代替服务器)

搭建 zookeeper 集群每个根据服务器总数得到 需要安装 zookeeper 的服务器的数量,然后再相应服务器上安装 Java jdk 和 zookeeperjdk 安装成功后,配置环境变量在 环境变量文件 /etc/profile 的最下面 复制下面这段 注意jdk 安装目录使用自己的安装目录export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLAS

2022-04-25 00:21:47 209

原创 对Java中引用的理解

对Java中引用的理解对于Java中引用,它由四种不同的类型,强引用,软引用,弱引用,虚引用。并不是当对一个对象进行处理的时候,某种状态属于某种引用状态,而是根据需要通过某种引用去关联某个对象,从达到目的比如说软引用,用于些有用但非必须的对象,比如缓存,在java 1.2 之后,提供了WeakReference 类来实现软引用,加入有一个应用需要读取大量的本地图片:如果每次读取图片都从硬盘力度去,可能会严重影响性能、如果一次全加载到内存中可能会造成内存溢出使用一个HashMap 来保存

2022-04-09 23:50:17 598

原创 Monitor 和 synchronized 关键字

Monitor 和 synchronized 关键字首先引入对象头的概念因为 Java面向对象的思想,在jvm中需要大量的存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象的功能,这些标记字段组成了对象头Java对象在虚拟机的组成为 Java对象 = 对象头 + 示例数据 + 对象填充其中对象头中用于存储运行时状态的叫做 Mark Word,另一部分是元数据指针以64为 虚拟机为例其markword 的格式和状态如下MonitorMonitor 被翻译为监

2022-02-22 21:19:39 379

原创 方法上的锁判断之线程八锁

线程八锁@Slf4j(topic = "c.Number")class Number{ public synchronized void a() { log.debug("1"); } public synchronized void b() { log.debug("2"); }}public static void main(String[] args) { Number n1 = new Number(); new Thread(()->{ n1.a(); }).star

2022-02-22 18:34:55 192

原创 牛客Java刷题总结

1. java.awt**:**提供了绘图和图像类,主要用于编写GUI程序,包括按钮、标签等常用组件以及相应的事件类。2. java.lang**:**java的语言包,是核心包,默认导入到用户程序,包中有object类,数据类型包装类,数学类,字符串类,系统和运行时类,操作类,线程类,错误和异常处理类,过程类。3. java.io**:**包含提供多种输出输入功能的类。4. java.net**:** 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET等。5. java.app

2022-02-22 16:28:06 532

原创 线程状态转换

线程的六种状态new : 线程刚被创建,还没有调用start(),方法RUNNABLE 当调用了start(),但是在Java层面RUNNABLE 覆盖了 操作系统层面的 【可运行状态,运行状态,阻塞状态】,由域BIO导致的线程阻塞,在Java这里无法区分,仍然认为时可运行BLOCKED,WAITING,TIMED_WAITING 都是JavaAPI层面的堆阻塞状态的细分。TERMINATED 当线程代码运行结束线程状态转换1.NEW -> RUNNABLE当一个新创建的线程调用

2022-02-22 16:23:50 161

原创 Thread一般方法

Thread 中的方法start() 和 run()直接调用run() ,则仅仅是在主线程中调用了对象的run方法start方法,在start方法中会调用start0() 这个方法,这个是native 修饰的底层方法,调用会,jvm会进行资源分配,然后进行run() 方法的回调,个人认为新的线程就是在 调用start0() 方法是产生的。sleep 和 yieldsleep调用sleep() 方法,会让当前线程从 RUNNING 进入 Timed Waiting 状态(阻塞)其他线程可以

2022-02-19 18:01:33 444

原创 线程的创建以及Thread与Runnable的关系(个人理解)

线程和进程线程一个进程之内可以分为一到多个线程一个线程就是一个指令流,将指令流中的一条条指令交给cpu去执行,Java中,线程作为最小的调度单位,进程作为最小的资源分配的单位,在windows 中进程只是作为线程的容器首先一个线程作为进程的子集,一个进程可以分为一个或者多个线程,而线程本身是指令流,将指令交给cpu 去执行,对于Java来讲,线程是最小的 调度单位 ,进程是最小的 资源调度单位,进程和线程的对比进程基本上相互独立,而线程作为进程的一个子集进程拥有共享的资源,比如:存储空

2022-02-19 16:34:22 791

原创 Spring AOP

AOP 面向切面编程,通过预编译的方式和运行期间动态代理实现程序功能的统一维护的一种技术,AOP 时OOP的延续。作用 : 利用AOP可以对业务逻辑的各个部分进行隔离,从而是的业务逻辑的各个部分耦合性降低,提高程序的可用性,同时提高了开发的效率。通俗解释: 不通过修改源代码的方式,在主干里进行功能的添加和删除APO实现原理:动态代理​ 两种情况有接口情况,使用jdk动态代理,创建接口实现类代理对象,增强实现类的方法没有接口情况: 使用CGLIB动态代理创建子类的代理对象,增强类的.

2021-07-29 10:23:23 108

原创 Spring5基于注解实现属性注入

@Auotwired : 根据属性进行自动装配把service 和dao 的对象床架,在service 和到 类添加创建对象注解在service 注入dao对象,在service类添加dao类型属性@Qualifier : 根据属属性名称进行注入要和@Autowired一同使用@Resource: 可以根据类型注入,可以根据名称注入根据类型注入直接加@Resource , 根据名称注入 @Resource(name = “UserDaoImpl1”),在name中写上对应类的注解.

2021-07-25 12:15:29 208

原创 # bean的生命周期

bean的生命周期流程通过构造器创建bean实例(无参数构造)为bean的属性设置值和其他bean引用(调用set方法)后置处理器: postProcessBeforeInitialization(Object bean, String beanName)调用bean的初始化方法(需要配置初始化的方法)后置处理器: postProcessAfterInitialization(Object bean, String beanName)获取到bean对象当容器关闭后

2021-07-24 15:41:59 86

原创 Spring通过xml实现属性注入

ioc 容器:容器在本质上就是工厂(factory)IOC底层原理IOC 接口(BeanFactory)IOC操作Bean管理(基于xml)IOC 操作Bean管理(基于注解)什么是IOC​ ioc是控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度,其中最常见的方式叫依赖注入还有一种方式是依赖查找。通过控制反转对象在被创建的时候没有一个调控系统内所有的对象的外界实体将所有依赖的对象引用传递给他,也可以说,依赖被注入到对象中​ 控制反转:把我们对象的创建和对象之

2021-07-24 00:10:10 581

原创 mybatis 的缓存机制

一级缓存和二级缓存默认情况下, 只有一级缓存(SqlSession级别的缓存,也称本地缓存)开启二级缓存需要动手开启和配置,它是基于namesapce级别的缓存为了提高扩展性,mybatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存一级缓存public void testFirstLevelCache() throws IOException { String resource = "mybatis-config.xml"; InputStream inp

2021-07-20 22:58:45 140

原创 MyBatis学习总结

MybatisMyBatis : 是一个持久层的框架, 也就是和数据库进行交互的工具以往对 数据库的操作是JDBC -> Dbutils(QuaryRunner) -> jdbcTemplate: 工具​ 编写sql -> 预编译 -> 设置参数 -> 执行sql -> 封装结果功能简单: sql 语句编写在Java代码里面; 硬编码高耦合的方式。(一旦对某个位置的代码进行修改需要将整个项目重新进行编译、封装、执行 会非常麻烦Hibernate: 全

2021-07-12 01:09:29 169

原创 牛客C语言题

2021.1.51.A.在语句char str[ ]=“string!”;中 数组str的大小等于字符串的长度错误 --数组的长度包含终止符\0--字符串的长度不包含\0B.语句char str[10]=“string!”; 和 char str[10] = {“string!”}不等价错误 对于字符串来讲 未赋值的部分自动赋值“\0” 两个时等价的C. 对于一位字符数组,不能使用字符串常量来赋初值错误 char str[10] = "string";成立D 对于字符串常量"st

2021-01-07 22:53:01 1179 1

原创 JavaWeb前端

前端主要负责两个事:负责用户数据的输入负责向用户展示数据前端主要的知识点HTMLCSSJavaScript第一部分 HTML5HTML:超文本标记语言 将数据进行基础的排版 根据标签的定义进行语义或排版1.1 HTML5常见元素与属性1.1.1 基本元素html:HTML文档的根标签head:页面的头部,存放的是一些关于页面的设置等信息,不会当成正文显示在网页里body:页面的主体,正文,其内容都会呈现在网页中title:网页的标题meta:主要用于设置网页内容st

2021-01-05 22:33:46 730

原创 解释MyBatis主要语句源码流程图

对于mybatis 来讲 整体的流程大体为下图本文主要解析从获取配置文件 到获取mapper对象InputStream is = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);SqlSession sqlSession = factory.openSession();UserMapper mappe

2020-08-06 00:01:49 248

原创 MyBatis分页查询

目标:通过对username模糊查询得到相应记录,此处使用分页所用到的表userrolemapper接口

2020-08-05 21:57:50 111

原创 使用tomcat和mybatis模拟在线人数统计和网站的访问量

思路使用一个文件来存储网站的总访问量,没登陆网站一次就让文件存储的时加一用setArrtibute 方法给我们需要展示在页面的总访问量赋值每有一位用户登录,在线人数加一,和上面类似同样使用setAttribute 存储数据 用户退出登录 在线人数减一public void UpDate(ServletContext sc) { Properties pro = new Properties(); String n; String filePath = "/Users/ruiru

2020-08-05 21:45:13 536

原创 使用Ecplise 用Mybatis generatorConfig 生成代码

配置文件在maven项目的pom.xml 添加mybatis-generator-maven-plugin 插件<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <dependencie

2020-08-01 00:37:12 130

原创 使用IDEA和MyEclipse搭建Maven项目(MyEclipse和ecplice过程类似)

一、Maven的下载以及配置1. maven下载 官网下载地址2.配置环境变量新添系统变量MAVEN_HOME 值设置为 Maven的根目录 如:D:\maven\apache-maven-3.5.2在系统变量的Path中添加bin目录地址如: D:\maven\apache-maven-3.5.2\bin在cmd中输入mvn -v 的到结果如下则说明maven安装完毕2.修改setting.xml文件位于conf文件下(1)配置远程仓库(国外服务器

2020-08-01 00:00:57 273

原创 数据库多表查询 myBatis四表联查

查询目标user表role表角色和菜单的关系menu表funs表(功能)表和表的关系 1. user对role 是多对一 role对user是一对多 即 一个user对应一个role 一个role 对应多个user 2. memu和role是多对多关系 即 一个role对应多个menu, 一个menu对应多个role 3. menue对fun 是一对多关系 fun对menu 是多对一关系 即 一个menu对应多个fun

2020-07-30 16:16:39 1426

原创 mysql行级锁与表级锁,乐观锁 ,悲观锁

锁定用于确保事务完整性和数据库一致性。 锁定可以防止用户读取其他用户正在更改的数据,并防止多个用户同时更改相同的数据。 如果不使用锁定,数据库中的数据可能在逻辑上变得不正确,而针对这些数据进行查询可能会产生想不到的结果。在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。行级锁  行级锁是Mysql中

2020-07-21 11:24:08 652

原创 MyBatis传入多个不同类型的参数

mapper接口public List<Bean> getBeanList(String Id ,Strin g code);首先要传入多个参数是不能用parameterType1 .使用角标<select id="getBeanList" resultType="Bean"> select *from tableName where id=#{0} and name#{1}</select>//id 和name 是数据库表中的两个字段0 表示的是传进去

2020-07-19 22:20:32 2571

原创 PreparedStatement封装

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class psJar{ private static String driver = "com.mysql.jdbc.Driver"; private static String url

2020-07-14 16:15:41 317

原创 statement 和 PrepareStatement

Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行. 例如, 假设我使用Employee ID, 使用prepared的方式来执行一个针对Employee表的查询. JDBC驱动会发送一个网络请求到数据解析和优化这个查询. 而执行时会产生另一个网络请求.在JDBC驱动中,减少网络通讯是最终的目的. 如果我的程序在运行期间只需要一次请求, 那么就使用Statement.

2020-07-14 16:14:36 272

原创 抽象类为什么不能创建对象

抽象类为什么不能创建对象因为抽象类中含有很多没有实现的方法创建对象去调用方法是指做明确的事情,而这个抽象方法并不明确,所以只有继承抽象类去实现抽象方法才可以。

2020-07-14 00:01:54 690 1

原创 SQL查询语句关键字的执行顺序

SQL查询语句关键字的执行顺序1)Mysql语法顺序:select ->from ->join ->on ->where ->group by ->having ->union ->order by ->imit2)MySQL语句执行顺序from ->on ->join ->where ->group by ->having ->select ->distinct ->

2020-07-14 00:01:17 218

原创 JavaBean

1.Javabean是什么在一个web工程中——tomcat服务器,对其进行分层 其中存在下面三层数据对象层(实体类和数据库表相对应 ---- 一张表对应一个类)数据链路层 (负责通过sql语句操作对象)所有的业务都建立在数据链路层之上业务层(负责所有的接口以及接口的实现)这三层 合起来称为 JavaBean2.简单实现package com.openlab.pojo;/** * 领域对象层 * * */public class Employee { private S

2020-07-13 23:48:26 115

原创 面向对象

面向对象和面向过程什么是面向对象 面向过程, 他们是解决问题的思路, 大致的方向面向过程指的是 分析出问题解决所需要的步骤弊端 : 费时 费力 做出来的结果也不一定是最优面向对象:、...

2020-03-02 18:10:39 281

原创 计算机基础(选择)

本题中应该是属于c/c++中非空广义表的表头可以是原子或子表,标为一定是子表在c中发生了角标越界

2020-02-23 17:44:21 143

原创 领扣习题

xclclass solution1313{ public int[] decompressRLElist(int[] nums){ int len=0; for(int i=0;i<nums.length;i+=2){ len+=nums[i]; } int[] arr = new int[len]; int intdex=0; for(int i=1;i...

2020-02-23 12:59:09 190

空空如也

空空如也

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

TA关注的人

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