自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 变量名的力量

一、变量命中常用的对仗词对仗词的使用要准确。通过应用命名规则来提高对仗词使用的一致性,从而提高其可读性。比如begin/end这种一组用词就非常易于理解和记忆,而与那些常用语言相差甚远的词语则通畅难以记忆。下面是一些常用的对仗词begin/endfirst/last locked/unlockedmin/maxnext/previousold/newopened/colsedvisible/invisible(可见的/不可见的)source/destination(源头/目的地)up

2022-03-05 19:33:14 145

原创 理想的设计特征

为什么要使用这些特征高质量的设计通常有很多常见的特征,换言之,拥有这些高质量的特征,也就理高质量的设计更近了1、最小的复杂度设计的首要目标就是让复杂度最小,避免看似聪明的设计。如果所编写的代码不能专注于程序的一部分而忽略其他部分,那这一设计就没什么用了。2、易于维护易于维护意味着设计代码的时候时刻为了维护程序的人员着想,时刻想着那些维护你代码的程序员可能会就你的代码而提出的问题。把那些程序员当做你的听众,自然也就写出了自明的系统。3、松散耦合松散集合意味着设计程序的时候,让程序的各个组成部分之

2022-03-04 09:51:58 204

原创 Go语言中常用的字符串操作

1、len()用来统计一个字符串的长度的(按字节统计一个中文字符在utf-8中是三个字节)2、[]rune(T type) 将一个字符串转化为切片,可以用于遍历含有中文的字符3、i,err := strconv.Atoi()将一个字符串转化为一个整数,返回值有i和error两个4、str := strconv.ItoA() 将一个整数转化为一个字符串5、bytes := []byte(str string) 字符串转化为byte切片6、str := string([]byte{97,98,99})

2022-01-11 10:15:37 1326 1

原创 第四章 网络层

一、网络提供的两种服务在计算机通信中,一直存在的争议是网络层应该向运输层提供怎样的服务(面向连接的还是面向无连接的)。争论的实质是在计算机通信中,可靠的交付应该由谁来负责?网络还是端系统?面向连接的一部分人认为应该借鉴电信网的成功经验,使用面向连接的通信方式。这种方式的核心思想在于:当两台计算机要进行通信的时候,应该先建立连接(一条vc虚电路),以预留双方通信所需要的一切网络资源,然后双方就沿着已经建立这一条虚拟电路进行发送分组,这样的分组方式可以让分组的首部不用再填写完整的目的主机的地址,只用

2021-12-24 10:04:05 258

原创 杭州恒生和腾讯云面试题

恒生:1、为什么int是4个字节2、spring什么用处3、mysql事务4、索引腾讯云:一面:1、介绍数据库视图2、你学过的c语言的书的作者、数据结构的作者3、ssh了解嘛4、session和cookies的区别5、你使用的linux常用命令介绍6、linux的替换、拷贝、统计文本行数7、mybatis主要功能8、javascript和java的关系9、多线程的实现方式,继承Thread和实现Runnable的区别二面:(基本是看着博客问的)1、算法题:写代码 题目:判断

2021-12-24 10:03:20 119

原创 spring内功:软件架构设计原则

软件架构设计原则一、什么是软件设计原则软件设计原则是为了让代码的可读性变高,复用性更好,更有利于后期的扩展和修改。即使不学习也完全可以写代码,只是后期面临业务的变更和需求的变化代码的修改极其困难。二、为什么要遵循软件设计原则直接目的: 为了在测试找到我们之后,修改代码更加的快捷、迅速。长久目的: 设计原则是23中设计思想的基础,有的设计思想是使用一种软件设计原则,有的设计模式是使用多个设计原则结合使用。各种优秀的框架就是多种设计模式的联合使用。想要重构各式各样的框架或者是手写服务器又或者是进修架构

2021-12-24 10:01:12 219

原创 创建者模式——抽象工厂模式

为辅

2021-11-08 14:01:23 89

原创 快速排序(实测8万数据无错)

快速排序package com.atguigu.Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;/** * 快速排序 * * 排列80000个数据的时间为8毫秒 */public class QuickSort { public static void main(String[] args) { //待排序的一维数组arr

2021-11-04 21:54:39 221 1

原创 好用的idea插件

1、Alibaba Java Coding Guidelines首先要推荐的是和《手册》配套的阿里巴巴 Java代码规范插件。安装该插件后,代码超过 80 行、手动创建线程池等,这些和《手册》中的规约不符时,IDEA中会给出警告提示。建议大家一定一定一定要安装该插件,它会帮助你检查出很多隐患,督促你写更规范的代码。2、Material Theme UI对于很多人而言,写代码时略显枯燥的,如果能够安装自己喜欢的主题将为开发工作带来些许乐趣。IDEA 支持各种主题插件,其中最出名的当属 Materi

2021-11-04 13:04:42 208

原创 JavaWeb上

一、基本概念1.1、前言 web开发: 1. web,网络的意思 2. 静态web:eg:html、css 提供给所有人的页面都不会发生变化 3. 动态web:eg:几乎所有的网站在java中,动态web资源开发的技术统称为javaweb1.2、web应用程序 web应用程序:可以提供浏览器的访问的程序; - a.html、b.html。。。。多个资源,这些web资源都可以被外界访问,对外界提供服务 - 我们能访问到的

2021-10-31 19:41:57 153

原创 创建者模式——单例模式

何为创建者模式创建者模式:创建者模式主要的关注点事怎样创建对象,他的主要特点是“将对象的创建和使用分离”,这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建者模式分为:单例模式工厂方法模式抽象工程模式原型模式创建者模式一、单例模式1、单例模式介绍单例模式(Singleton Pattern)是java中最简单的设计模式之一。这种类型的设计模式属于一种创建类模式,它属于一种创建对象的最佳模式。这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创

2021-10-28 23:12:28 139

原创 动态代理和ajax

1、代理的概念1、在开发中需要使用动态代理的时机比如:在有一个A类的情况想要使用B类中的方法,但是c不让a调用创建一个代理B类让b来访问c类2、代理模式由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。...

2021-10-28 09:57:29 126

原创 第一章 概述

本章重点:1、互联网边缘部分和核心部分的作用,其中包含分组交换的概念2、计算机网络的性能指标。3、计算机网络分层的体系结构,包含协议和服务的概念1、互联网概述1、常见概念1、计算机网络:由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机、集线器、交换机、、路由器等2、主机:网络把许多计算机连接在一起,而互联网则把许多网络通过路由器连接在一起。与网络相连的计算机常称为主机3、互连网:以小写字母i开始的internet(互连网)是一个通用名词,它泛指由多个计算机网络互连而成的计算机网络。

2021-10-25 16:46:13 1262

原创 回溯算法

一、暴力穷举法给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]比如此处需要将所有的情况都列举出来代码package middle.solution46;import java.util.Arrays;import java.util.LinkedList;import java.util.L

2021-10-24 23:11:07 99

原创 Linux常见的使用命令

1、Linux简介 1、是一种开源的、免费的操作系统,安装在计算机的硬盘上的、用来管理计算机的硬件和 软件资源的系统软件,Linux注重安全性、稳定性、高并发处理能力、没有优异的可视化界 面,linux主要用于服务器上,windows主要用于个人计算机上 2、Linux的目录结构...

2021-10-24 14:33:57 672

原创 第二章:TomCat简介

一、tomCat概述

2021-10-24 00:15:00 2143

原创 最小生成树的两种方法

法一代码package kruskal;import java.util.Arrays;/** * 解决最小生成树的另一种方法 */public class KruskalDemo { public static void main(String[] args) { char[] datas = new char[]{'A','B','C','D','E','F','G'}; int verxs = datas.length; int

2021-10-24 00:00:00 254

原创 差值查找(二分查找plus)

差值查找和二分查找的区别所在二分查找:顾名思义每一次都是取得了数据的一半进行查找,在数据分布的相对比较均匀的时候,二分查找的效率还是很不错的。 比如说这个数组:{1, 2,3 , 4 ,5 , 6 ,7 , 8 ,9 , 10}查找里面的任意一个数组最多也就只会花费3次的分组但是如果这个数组的分配是极其不均匀的,比如以下数组 {1 , 1 ,1 , 1 ,1 , 1 ,1 , 1 ,1 , 1 ,9}我们希望能够以更少的次数就可以找到这个数据9(当然二分查找是完全没有问题的),此时就是差值

2021-10-22 20:55:04 176

原创 mybatis

一、初识mybatis1、mybatis概述mybatis:也被成为ORM(Object/Relational Mappering ,对象关系映射)框架。是一种为了解决面向对象的关系与关系型数据库不匹配的问题,是将java对象与数据库表之间的对象持久到关系型数据库表。通俗来说就是把连接数据库和对数据库进行修改的任务由框架代劳了,开发人员通过使用mybatis的方式来管理数据库,由mybatis将sql传给数据库执行2、mybatis的入门程序首先添加配置文件:在mybatis.xml的文件下添加

2021-10-18 11:22:03 437

原创 kmp字符串的匹配算法

package kmpDemo;import java.util.Arrays;/** * kmp算法,查看字符串str1中是否存在字符串str2,若存在,返回第一次出现的第一个字符的下标 */public class Kmp { public static void main(String[] args) { String str1 = "mississippi"; String str2 = "issip"; int voer = k

2021-10-17 16:53:02 49

原创 二叉树的前中后序遍历java实现

package com.atguigu.Tree;/** * 二叉树的前中后序遍历 * * * 1、宋江 * · · * · · * 2、吴用 3、卢俊义 * · *

2021-10-17 16:51:59 43

原创 差值查找(二分查找的高级版)

package com.atguigu.Search;import java.util.Arrays;/** * 差值查找 */public class InsertValSearch { public static void main(String[] args) { int[] arr = new int[100]; for (int i = 0; i < arr.length; i++) { arr[i] = i +

2021-10-17 16:50:23 81

原创 二叉树的存储与遍历java实现

package com.atguigu.binaryTree;import java.util.Objects;/** * 二叉树的存储与遍历 */public class BinaryTree { public static void main(String[] args) { int[] arr = {7,3,10,12,5,1,9,2}; BinaryTreeTest tree = new BinaryTreeTest(); for

2021-10-17 16:47:36 51

原创 avTree树java实现

主要实现思路为左旋转和右旋转代码package com.atguigu.avlTreeDemo;import java.util.Objects;/** * avl树:平衡二叉树 */public class AvlTreeDemo { public static void main(String[] args) { //左旋转测试开始 /* int[] arr = {4,3,6,5,7,8}; AvlTree avlTree =

2021-10-17 16:45:46 271

原创 huffman编码Java实现

实现思路huffmantree的创建、压缩和解压创建思路1、写一个方法得到对应的String的Byte数组2、创建一个Node节点:属性:data(每个数据的asc码) weight(数据出现的次数) left right继承Comparable方法:toString(重写toString) preOrder(前序遍历) comparableto(比较大小的方法)3、方法:将Byte数组转化为map集合(key存储数据,value存储出现的次数)4、将map集合转化为list5、对li

2021-10-17 16:43:43 222

原创 SSM项目的各种配置

一、项目的结构目录此处注意的是资源文件夹在conf的下面二、mapper的xml文件配置修改的部分壹:改为Dao接口的全限定名称贰:改为Dao接口中对应的方法的名称叁:改为实体类对应的全限定名称,即查询操作后返回的类型(要求所有属性都要是有set方法,应为是要靠set注入传递值的)<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Map

2021-10-17 14:04:05 451

原创 插入排序java实现

排序80000时间约为2秒时间复杂度n^2package com.atguigu.Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;/** * * 插入排序 * * 排序80000个数据的时间为2秒 */public class InsertSort { public static void main(String[] args) { i

2021-10-17 11:31:42 42

原创 冒泡排序java实现

时间复杂度O(n^2)排序800000数据的时间为12秒左右代码package com.atguigu.Sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;/** * * 冒泡排序 * * 对一维数组 3,1,8,-2,9,-5 进行排序 * 冒泡排序的时间复杂度为n*n * 排序八万个数据使用时间为12秒左右 */public class Bubble

2021-10-17 11:28:51 62

原创 Spring

一、spring概述1、什么是springspring是一个以ioc(控制反转)和aop(面向切面编程)为核心的框架。(一个容器,用以容纳对象的容器,包括mybatis.springmvc.等等)控制反转:简单来说就是让创建对象的任务转移给了spring这个容器。将创建对象和实现功能解耦合了。面向切面编程:利用注解的方式在不改变原来代码的情况下新增加新的功能。寻找到实体的一个切面。2、spring有什么作用是一个容器。能够承担创建对象和接纳其他框架的作用。这也是spring能够久经不衰的原因之一

2021-10-17 11:18:04 66

原创 关于java中的包机制

关于java中的包机制1、包又称为package,Java引入这种语法机制主要是为了方便程序的管理,不同功能的类被分 门别类的放在不同的软件的包里,查找比较方便管理比较方便易于维护。2、怎么定义package?– 在java 源程序的第一行编写package语句–package只能编写一个语句–语法结构:package 包名;3、包名的命名规范:公司域名倒叙 + 项目名 +模块名 + 功能名:采用这种命名方式的几率比较低,因为公司域名具有唯一性。4、包名要求全部小写,包名

2021-10-15 10:47:36 288

原创 第一章:web运作原理

一、web的简介1、web概念:web是一种分布式应用架构,旨在共享分布在网络上的各个web服务器中的所有相互链接的信息。2、web的作用web的首要作用是向人们提供信息服务3、web的三个特征①使用超级文本技术html来表达信息,已建立信息和信息的链接(信息的表达)②使用统一资源定位技术URL来实现网络上信息的精准定位(信息的定位)③用网络应用层协议http来规范浏览器与web服务器之间的通信过程(信息的传输)二、HTML简介1、HTML定义HTML(Hyper Text Marku

2021-10-15 10:46:27 154

原创 判断两个链表是否相交

判断两个链表是否相交题目描述给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。链表class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}解决方

2021-10-12 17:11:11 206

原创 mysql的常用语句练习使用

使用的数据库DROP TABLE IF EXISTS EMP;DROP TABLE IF EXISTS DEPT;DROP TABLE IF EXISTS SALGRADE;CREATE TABLE DEPT (DEPTNO int(2) not null , DNAME VARCHAR(14) , LOC VARCHAR(13), primary key (DEPTNO) );CREATE TABLE EMP (EMPNO int(4) not nul.

2021-09-23 10:30:59 114

原创 逆波兰表达式计算机的实现

逆波兰表达器的实现逆波兰表达式(后缀表达式)逆波兰表达式(后缀表达式)后缀表达式:平时使用的是中缀表达式举例说明:(1 + 4) * 4 - 6 完成任务如下:任务一:将一个中缀表达式转换为一个后缀表达式举例说明:1+((2+3)4)-5转换为 集合ArrayList[1,2,3,+,4,,+,5,-]计算结果为:16实现思路:第一步:将字符串1+((2+3)4)-5转换为一个ArrayList[1,+,(, (,2,+,3,),,4,),-,5]第二步:将集合中的中缀表达式

2021-07-05 14:45:34 95

原创 操作系统 ---- 解决死锁问题

操作系统----解决死锁问题四种方法1、破坏互斥条件互斥条件:只有当进程互斥使用资源菜户造成死锁。比如:SPOOLing技术2、破坏不剥夺条件不剥夺条件:进程所获得的的资源在未使用完之前,不能有其他进程夺走,只能主动释放。2.1、破坏不剥夺条件:方案一:当某个进程请求新的资源得不到满足的时候,他必须释放已经占有的所有资源,等到以后需要的时候再次重新申请。也就是说,即使资源尚未使用完毕,也要主动释放,从而破坏了不剥夺条件。方案二:当某个进程需要的资源被其他进程所占有的时候,可以由操作系统协

2021-06-29 16:26:17 490

原创 数组与稀疏数组之间的转换算法实现 java

数组与稀疏数组之间的转换算法实现 java主要方法方法主要包括:二维数组转换到稀疏数组稀疏数组转换到二维数组将数组写入到文件中将文件中的数据读取出来代码`package com.atguigu.sparsearray;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/**

2021-06-08 21:14:59 59

原创 抽象类与接口的区别

接口与抽象类的区别1、接口1)是一种特殊类的文件2)作用:指定规则降低耦合度3)使用规则:接口中属性,默认都是静态常量属性接口中的方法,都是抽象的,如果需要定义具体方法实现,需要用default修饰接口与接口之间可以实现多继承,但是接口与接口之间不可以相互实现接口中不存在构造方法2、抽象类1)抽象类由abstract修饰2)抽象类的作用是降低接口实现类与接口之间的的实现难度(************)重点3)使用规则: 抽象类可以声明方法,

2021-06-02 19:22:39 34

原创 重载与重写的区别

java中重载与重写的区别1、重载:java中允许同一个类文件中出现多个方法名相同,但是参数列表不一样的同名方法,这种现象称之为重载。要求两个方法名必须相同,参数列表不能相同(参数的个数,类型,顺序)2、重写发生在继承过程中,子类对父类方法实现细节重新定义1)重写方法的时候,子类不能降低方法的访问权限,但是可以扩大权限2)由private、final修饰的方法不能被重写3)重写方法的时候,抛出的异常可以是父类方法异常的全集,空集,子集(不能扩大)4)重写方法的返回值,可以缩小类型范围,但是

2021-06-02 19:08:51 69

原创 使用堆栈实现对于括号(三种括号)的匹配问题

使用堆栈实现对于括号(三种括号)的匹配问题算法思想由于括号的使用刚好符合堆栈的先进后出原则,所以使用堆栈来实现括号的配对括号匹配有以下四种结果1、左右括号次序不匹配2、左括号多于右括号3、右括号多于左括号4、刚好匹配实现想法:输入一段字符串,当遇到左括号,进栈,遇到右括号时,取出栈顶的元素与右括号比较,如果不一致则输出 “左右类型不匹配”,一致的话则继续若遇到右括号时,栈中为空则判断为右括号多于左括号 若字符串全部输入完毕,栈不为空,则判断为右括号少于左括号,若为空,则

2021-04-27 12:49:32 740

原创 java中实现对于时钟时分秒增减操作

java中实现对于时钟时分秒增减操作题目:在程序中经常要对时间进行操作但是并没有时间类型的数据。那么我们可以自己实现一个时间类来满足程序中的需要。定义名为MyTime的类其中应有三个整型成员时hour分minute秒second为了保证数据的安全性这三个成员变量应声明为私有。为MyTime类定义构造方法以方便创建对象时初始化成员变量。再定义diaplay方法用于将时间信息打印出来。为MyTime类添加以下方法addSecond(int sec)addMinute(int min)add

2021-04-26 10:06:45 578

空空如也

空空如也

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

TA关注的人

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