- 博客(54)
- 收藏
- 关注
原创 移动端适配
通常移动设备屏幕尺寸大小用英寸(in)来度量,1英寸= 2.54cm。图片或电子屏幕由很多个具有特定位置和特定大小的方块元素(即像素)组成。在iPhone12官网的技术规格上,表明该手机是2532 * 1170像素分辨率。意思是在水平方向和垂直方向上分别有2532和1170个像素点。在设备尺寸相同的情况下,分辨率越高,肉眼观察越清晰。在这台手机的技术规格说明上,还写了一条460ppi。ppi (pixel per inch): 每英寸包含的像素数量 如果水平方向像素点数为x...
2021-02-10 15:09:14
329
1
原创 SpringBoot、Mybatis加Shiro
当web程序验证用户名和密码时,会向Shiro中的Realm提供用户名和密码。作为真正进行认证授权的环节,Realm得到Shiro提供的用户名及密码后,会向ini文件或者数据库的用户表去检索。写一个XXXRealm类,继承AuthorizingRealm抽象类,实现两个抽象方法即 protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection); 授权和 protect.
2020-07-28 21:57:13
156
原创 vue的:href和href
不要使用vue.min.js,要用vue.js,可以显示报错信息。代码段<ol class="breadcrumb"> <li><a href="shopkeeper_category_list">所有分类</a></li> <li><a :href="'shopkeeper_product_list?cid='+category.id">{{category.nam
2020-07-21 20:13:41
6272
1
原创 invalid bound statement(not found)
service 层调用mapper的查询方法,出现invalid bound statement。mapper。xml和mapper类对映不上。解决方法。打开target/classes/com/。。。/mapper,查找里面是否有编译的mapper。xml,如果没有,移动xml进去
2020-07-20 09:52:15
168
原创 可作为GC Root的对象
虚拟机栈中的引用对象方法区中类静态属性引用的对象方法区中常量引用对象本地方法栈中JNI引用对象简单介绍一下CMS垃圾回收器?CMS是英文Concurrent mark sweep的缩写,是以牺牲吞吐量为代价而换取最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用,这种垃圾回收器非常适合。在启动JVM的参数加上“-XX:+UseConcMarkSweepGC”来指定使用C...
2019-10-08 17:23:45
137
原创 HashMap源码简略分析
HashMap中核心的成员变量初始化桶大小,即数组默认大小。 桶最大值,即数组最大值。 默认的负载因子(0.75) Table真正存放数据的数组 Map存放数量的大小 桶大小,可在初始化时显式指定 负载因子,可在初始化时显式指定。Static final int MAXIMUM_CAPACITY = 1 << 30; 最大容量Static final float...
2019-08-16 16:09:23
141
原创 字符串转整数
public class Solution { public int myAtoi(String str) { if (str.isEmpty()) return 0; int sign = 1, base = 0, i = 0, n = str.length(); while (i < n && str.charAt...
2019-06-25 21:39:21
151
原创 复杂链表的复制(不使用额外空间)
思路:比如说原链表是ABCD。则先复制结点A' B' C' D',分别连接在ABCD后面。然后遍历ABCD,得知每个原结点的random指向。那么复制结点的random指向原结点random的后一个。(A---C,则A'----C后面的C') 再次遍历链表,将所有原结点跨个相连,将复制结点跨个相连。返回复制结点的第一个即可。/*public class RandomListNode {...
2019-06-09 16:01:50
131
原创 等价类小知识。。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况:有效等价类和无效等价类。划分等价类的6条原则:(1)在输入条件规定了...
2019-05-13 16:37:25
685
原创 广义表的概念和基本实现(基于Java语言
广义表是一种复杂的数据结构,是线性表的拓展,可以表示树结构和图结构。广义表在文本处理,人工智能,计算机图形学中有着广泛的应用。1.广义表的定义广义表是n(n>=0)个数据元素a0, a1, a2, a3...an-1构成的有限序列。其中ai(0<=i<n)是原子或广义表,原子是不可分解的数据元素。广义表的元素个数n为广义表的长度。当n = 0,则该广义表为空表。广义表的深...
2019-04-01 21:13:46
762
1
原创 顺序队列和链式队列的实现(基于Java语言
package testQueue;public interface Queue<T> { public abstract boolean isEmpty(); public abstract boolean add(Object x); public abstract T peek(); public abstract T poll();}1. 顺序队列顺序...
2019-03-17 15:41:00
510
原创 顺序表和单链表的基本实现(基于Java
顺序表:package test;public class SeqList { protected Object[] element;//设置一定长度的对象数组,利用数组实现顺序表的顺序存储和随机存取 protected int n; public SeqList(int length){ this.element = new Object[length]; this.n...
2019-03-15 21:02:10
939
原创 栈的应用——计算器中缀表达式转后缀表达式
package test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Stack;public class ExpressionTransfer { public static StringBu...
2019-03-10 16:06:36
267
原创 字符串匹配——KMP算法详解
啊嘞...已经在word里准备好惹,但是感觉好像这里编辑器不太会用或者说不太完全...截图吧内容基本上参考于第四版数据结构与算法(电子工业出版社)。断断续续研读了几天,自己理了一下。好了,这是next改进之前的代码package test;public class KMP { public static void main...
2019-03-04 22:40:22
387
原创 JavaSE复习——反射
类对象和类的对象不同。对于某类xxx,类的对象就是xxx类实例化之后的对象。而类对象就是用来描述这个类拥有什么属性和什么方法。在获取类对象的时候,会导致类属性被初始化。也就是说静态属性,静态代码块都会在类对象被获取时直接被初始化。package reflection;public class TestReflection3 { public static void main(Str...
2019-02-27 21:30:56
286
原创 JavaSE复习——单例模式
单例模式是指,某个类只能被实例化一次,在JVM中,只能有一个相应的对象存在。第一种实现方式:饿汉式 package hungry;public class HungryMode { private HungryMode(){ //构造方法私有,以防外部通过new来实例化 } private static HungryMode instance = new Hungr...
2019-02-25 23:05:53
226
原创 [计网编程]TCP套接字
关于Socket的官方文档。java.net.Sockethttps://docs.oracle.com/javase/8/docs/api/package ClientAndServer;import java.net.InetAddress;import java.net.Socket;public class Client { public static void main...
2018-11-22 22:59:17
344
原创 [计网编程]UDP套接字编程
package ClientAndServer;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPClient1 { public static void main(...
2018-11-19 22:55:26
188
原创 [计网编程]写一个UDP Ping程序
https://docs.oracle.com/javase/7/docs/api/java/net/DatagramSocket.html DatagramSocket的官方文档https://docs.oracle.com/javase/7/docs/api/java/net/InetAddress.html InetAddress表示一个IP地址,其实例包括ip还...
2018-11-18 22:15:58
1372
1
原创 搭建一个最简单的SSM项目(Spring+SpringMVC+Mybatis
首先根据我浅显的认知,回顾一下Spring,Spring MVC,Mybatis各个小demo中需要做的配置工作。。。Spring的简略配置Spring是一个基于IOC和AOP的结构J2EE系统的框架,IOC 反转控制 是Spring的基础,Inversion Of Control 。简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象 DI 依赖注...
2018-09-27 22:42:25
813
转载 关于SpringMVC的好文
https://www.cnblogs.com/doudouxiaoye/p/5793657.html 前端控制器DispatcherServlet 详解
2018-09-27 21:44:19
134
原创 简单的Mybatis与Spring整合
新建一个Java Project,导包。分别在src目录下新建com.sm.pojo, com.sm.mapper, com.sm.test的package,用以存放实体类,mapper,和测试类。实体类选择用User,字段id和name。对应地,建立mysql的springmybatis的数据库,建立user_表格。在mapper的package下面建立UserMapper的inte...
2018-09-26 16:35:54
135
原创 Mybatis中注解方式实现一对多查询
上一篇关于mybatis的记录了如何查询user这个实体类的数据。假设这些用户分属于不同的工作部门,今天记录实现查询部门及下属用户的过程。据此,新建一个mysql的 table,名为department_,字段为id,name。代码略。在com.mybatis.pojo下面建立一个Department.java的实体类。属性包括id,name,users,为其设置setter和getter。...
2018-09-24 16:00:47
1790
1
原创 在mybatis中用注解的方式实现增删查改(
已经在mybatis中建立了User这一实体类。如果用User.xml,则需要在mybatis-config.xml中写上<mapper resource="com/mybatis/pojo/User.xml"/>。如果有其他实体类,则对应每一个都需要进行这样的配置。以下是注解方式实现对某个实体类对象数据的增删查改。1.新建com.mybatis.mapper在下面新建Us...
2018-09-23 20:38:55
442
2
原创 利用Mybatis查询数据库数据
记录一个实例实现的过程,利用mybatis查询User类数据。首先打开mysql数据库,在sql编辑器里添加代码,建立user_表格。user_表格含有id,name,usercode三个字段。类型分别为int,varchar,varchar。代码略。在eclipse中,建立一个mybatis的Java Project。所有的实体类都放在pojo的package下面。在pojo下新建实体类...
2018-09-23 11:36:36
5575
1
原创 SpringMVC中controller的配置方式(2)
这一篇采取注解的方式来配置controller,这样就不用在springmvc-servlet.xml中写配置代码。新建一个controller类,专门用来测试注解方式。使用注解的方式,则不需要使该类实现Controller接口。在类前面加上@Controller表示该类是个控制器package controller;import javax.servlet.http.Htt...
2018-09-16 22:33:29
240
原创 SpringMVC的视图定位
先上springmvc-servlet.xml的代码,多加了一个id=viewResolver的bean<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans...
2018-09-16 17:54:20
557
原创 SpringMVC中controller的配置方式(1)
按照网上教程,学习了SpringMVC的第一步,如何在index.jsp中写Hello Spring MVCM——Model 模型层 V——View视图层 C——Controller连接模型层与视图层的控制层配置方式1<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//D...
2018-09-15 22:51:26
365
原创 关于使用Struts时eclipse中出现There is no Action mapped for namespace / and action name的问题
好久没有写博客,这次的问题困扰了三天。。决定一定要记录一下<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache....
2018-09-09 15:53:51
247
无连接运输:UDP
使用UDP时,在发送报文段之前,发送方和接收方的运输层实体之间没有握手。所以UDP是无连接的。UDP检验和提供了差错检测功能。检验和用于确定UDP报文段从源到达目的地移动时,其中的比特是否发生了改变。...
2018-02-10 10:50:51
257
1
原创 一个简单Web服务器的实现(Java语言开发
要求:1.当一个客户(浏览器)联系时创建一个连接套接字 2.从这个连接接受HTTP请求 3.解释该请求以确定所请求的特定文件 4.从服务器的文件系统获得请求的文件 5.创建一个由请求的文件组成的HTTP响应报文,报文前面有首部行 6.经TCP连接向请求的浏览器发送响应。如果浏览器在请求一个不存在的文件,服务器...
2018-02-09 16:27:05
2225
原创 计网自顶向下(应用层)——HTTP
HTTP请求报文一个典型的HTTP请求报文:GET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/5.0Accept-language: frHTTP报文的第一行叫做请求行,后继的行叫做首部行。请求行有3个字段:方法字段、URL字段和HTTP版本字段。其中方法字段(上
2018-01-19 17:11:36
377
原创 OS学习笔记——存储管理方式
分配方式分为:连续分配 和 离散分配1.连续分配方式 单一连续分配:内存被分为用户区和系统区。适用于单用户单任务操作系统。 分区式分配方式:(1)固定分区 分成若干区域 内存分配与回收:通常将内存分区根据其大小进行排队,并为之建立一张分区说明表。表中包含各分区的区号
2018-01-17 13:25:27
736
原创 OS学习笔记——管程
管程由过程、变量及数据结构组成,它们共同构建了一个特殊的模块或软件包。进程可以在任意时刻调用管程中的进程,但不允许使用管程外的过程访问管程内的数据结构。管程在任一时刻都只能有一个活跃进程。这一特性可以帮助管程有效地实现互斥。管程作为一种特殊的程序被编译器识别,每当进程调用管程时,编译器都会采用与其他过程调用不同的方法来处理。这种方法的独特之处在于,当一个进程调用管程中的过程时,该过程中的前几条
2017-12-12 13:16:50
1102
原创 OS学习笔记——哲学家进餐问题
问题可以描述为:五个哲学家一生都在思考和进餐中度过。吃饭的时候必须拿起两侧的筷子,吃完就放下。是否能编写程序且不产生死锁?最直接的解法int N = 5;Philosopher(int i){ while(TRUE){ thinking; take_chop(i); take_chop(i+1
2017-12-11 14:50:07
801
原创 OS学习笔记——生产者消费者问题
缓冲池是临界资源,因此需要为其设置一个互斥信号量mutex。此外,为了让生产者和消费者都能正确使用空、满缓冲区,还需要设置两个资源信号量empty和full,empty和full的初值分别为n和0. 在进程选择缓冲区时,还需要使用两个特殊指针in和out,分别指向生产者使用的空缓冲区和消费者使用的满缓冲区。每当in或out当前指向的缓冲区被生产者或消费者使用之后,需要后移一个缓冲区。semap
2017-12-10 23:17:29
687
原创 OS学习笔记——进程同步与死锁1
进程的同步对于需要相互合作的进程,执行顺序需要在某些特定时刻进行协调,先达到条件的进程需要等待后到达的进程,此时进程之间存在制约关系。典型例子是:A负责视频数据采集,B负责把A采集到的数据进行压缩处理。进程互斥:当多个进程需要使用相同的资源,而此类资源在任意时刻只能供一个进程使用,获得资源的进程可以继续执行,没有获得资源的进程就需要等待。典型例子:P1 和 P2都需
2017-12-10 16:24:54
294
原创 OS学习笔记——处理器调度2
当引起进程调度的事件发生的时候,首先要保存当前进程A的上下文,然后执行调度程序,在调度程序的控制下确定是否要进行切换,以及切换到哪个进程。如果要切换到另一进程B,则需要记录放弃CPU的进程A的现场信息(如PC,通用寄存器的内容等),把CPU分配给B进程,并恢复进程B的上下文,从上次切换前位置继续执行进程B代码。进程调度方式可以分为非抢占式和抢占式两种。非抢占式:调度程序一旦
2017-12-08 20:51:24
486
原创 OS学习笔记——处理器调度1
处理器调度的过程就是为待处理的作业或进程分配处理器的过程。处理器调度的层次:1. 高级调度高级调度又叫做宏观调度或作业调度,需要作出两个决定,一个是要从驻留在外存后备队列中调入多少个作业,二是调入哪几个作业;然后为被选中的作业创建进程,并分配必要的系统资源,如内存、外设等。最后把新创建的进程放入就绪队列中,等待被调度执行。高级调度的时间尺度通常是分钟、小时或天。
2017-12-08 14:57:39
394
原创 OS学习笔记——多线程模型
多线程模型主要分为三种:多对一模型/一对一模型/多对多模型多对一模型:允许将多个用户级线程映射到一个内核线程。线程管理是在用户空间进行的,效率比较高。如果有一个线程执行了阻塞系统调用,那么整个进程就会阻塞。所以任意时刻只允许一个线程访问内核,这样多个线程不能并行运行在多处理器上。一对一模型:每个用户线程映射到一个内核线程。当一个线程执行阻塞系统调用,该模型允许另一个线程
2017-12-07 23:56:06
587
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人