- 博客(57)
- 收藏
- 关注
转载 Redis
一、Nosql概述1、单机Mysql时代90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题:数据量增加到一定程度,单机数据库就放不下了数据的索引(B+ Tree),一个机器内存也存放不下访问量变大后(读写混合),一台服务器承受不住。2、Memcached(缓存) + Mysql + 垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率!优化过程经历了以下.
2021-03-15 08:29:27
219
原创 Linux三种软件安装方式及服务器基本环境搭建
jdk安装(rpm安装)1、rpm下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.html2、如果有安装openjdk 则卸载[root@kuangshen ~]# java -versionjava version "1.8.0_121"Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (
2021-03-14 19:16:08
177
原创 磁盘管理
概述Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用命令为 df、du。df :列出文件系统的整体磁盘使用量du:检查磁盘空间使用量dfdf命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法:df [-ahikHTm] [目录或文件名]选项与参数:-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k :以 KBytes 的容量显示各文件系统;-m :以 MByte
2021-03-14 15:20:14
158
原创 Linux用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。增加一个新的用户组使用groupadd命令groupadd 选项 用户组可以使用的选项有:-g GID 指定新用户组的组标识号(GID)。-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用
2021-03-14 10:58:22
178
原创 Linux账号管理
简介Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。实现用户账号的管理,要完成的工作主要有如下几个方面:用户账号的添加、删除与修改。用户口令
2021-03-14 10:39:35
84
原创 Vim使用
什么是Vim编辑器Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。vim 则可以说是程序开发者的一项很好用的工具。所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。三种使用模式基本
2021-03-14 09:37:05
128
转载 拓展:Linux 链接概念
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。硬连接硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两
2021-03-13 10:57:19
99
转载 Linux常用的基本命令
目录管理绝对路径和相对路径我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。在开始本教程前我们需要先知道什么是绝对路径与相对路径。绝对路径:路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。相对路径:路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man 这就是相对路径的写法啦!处理目录的常用命令接
2021-03-13 10:53:00
331
转载 Linux概览
走近Linux系统开机登录开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!一般来说,用户的登录方式有三种:命令行登录ssh登录图形界面登录最高权限账户为 root,可以操作一切!关机在linux领域内大多用在服务
2021-03-13 09:18:02
106
转载 Git
Git基本理论(重要)三个区域Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:Workspace:工作区,就是你平时存放项目代码的地方Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息Reposito
2021-03-12 18:52:28
185
原创 java通过Runtime.getRuntime().exec调用python脚本解决bug总结
前提环境:操作系统:MAC OSPython脚本:OpenCV中最简单的图像缩放程序java运行环境:Springboot+IDEA+jdk1.8话不多说,直接上执行成功代码//测试代码import org.junit.jupiter.api.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.test.context.SpringBootTest;impo
2021-03-08 11:14:05
1828
1
原创 Spring5
简介代码:https://github.com/Donkequan/Spring-Studyspring理念:是现有的技术更加容易使用,本身是一个大杂烩。SSH:Struct2 + Spring + HibernateSSM: SpringMVC + Spring + Mybatis官网: https://spring.io/projects/spring-framework#overview官方下载: https://repo.spring.io/release/org/springfra
2020-12-03 15:48:11
176
原创 Mybatis
什么是MyBatisMyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。Maven仓库<!-- https://mvnrepository.com/artifact/org.mybatis/myb
2020-11-27 10:07:15
472
原创 注解和反射
转载地址:https://blog.csdn.net/weixin_43751396/article/details/106315011注解和注释一样,注解不是程序本身,而是对程序作出解释,而注解与注释不同的点在于,注解可以被其他程序比如编译器读取@Override:只适用于修饰方法,表示一个方法声明重写超类中的另一个方法声明@Deprecated:可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,通常是因为它很危险或者存在更好的选择.@SuppressWarnings:用来抑制编译时的
2020-11-20 20:52:49
187
原创 多线程
线程就是独立的执行路径;在线程运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;main()称之为主线程,为系统的入口,用于执行整个程序;在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制;线程会带来额外的开销,如cpu调度时间,并发控制开销。每个线程在自己的工作内存交互,内存控制不当会造成数据不一致实现多线程代码(继承thread类)pac.
2020-11-16 20:55:25
105
原创 response.sendRedirect(““)和request.getRequestDispatcher(““).forward(req,resp)区别
request.getRequestDispatcher(“转发路径”).forward(req,resp)该语句是实现请求转发的,当请求进入到该servlet中执行到该语句时,服务器不会直接响应而是转发到转发路径得servlet继续处理,由于将req和resp带过去了,所以这期间是没有重新创建request和response对象,在接下来的servlet中同样可以获得当前servlet的request中的参数。应用场景:登录失败后重新转发回登录页面并显示错误信息转发的路径必须是同一个web容器下的u
2020-11-16 09:04:48
351
原创 数据库连接池
数据库连接—释放 十分浪费系统资源**池化技术:**准备一些预先的,过来就连接预先准备好的最小连接数=常用连接数最大连接数:业务最高承载上限超过最大连接数的排队等待等待超时编写线程池,实现一个接口DataSource开源数据实现(拿来即用)DBCPC3P0Druid无论使用说明数据源,本质还是一样的,DataSource接口不会变,方法就不会变...
2020-11-10 20:08:46
99
原创 PreparedStatement对象
可以防止SQL注入,效率更好!防止SQL注入的本质:把传递进来的参数当作字符,假设其中存在转义字符,就直接忽略,'会被直接转义代码实现public class Delete { public static void main(String[] args){ Connection con = null; PreparedStatement st = null; try{ con = JdbcUtils.getConnection(); //区别:使用?占位符代替参数 St
2020-11-10 19:19:32
166
原创 JDBC工具类实现
配置JDBC工具类public class JdbcUtils { static{//静态代码块,在类加载的时候执行 private static String driver; private static String url; private static String user; private static String password; try { InputStream is=BaseDao.class.getClassLoader().getResourceA
2020-11-10 11:18:48
102
原创 MySQL用户管理&&三大范式
用户管理基本命令/* 用户和权限管理 */ ------------------用户信息表:mysql.user -- 刷新权限FLUSH PRIVILEGES -- 增加用户 CREATE USER kuangshen IDENTIFIED BY '123456'CREATE USER 用户名 IDENTIFIED BY [PASSWORD] 密码(字符串) - 必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。 - 只能创建用户,不能赋
2020-11-09 21:07:49
125
原创 MySQL事务
数据库分类 :关系型数据库 ( SQL ) 表和表,行和列MySQL , Oracle , SQL Server , SQLite , DB2 , …关系型数据库通过外键关联来建立表与表之间的关系非关系型数据库 ( NOSQL Not only SQL) key:valueRedis , MongoDB , …非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定事务什么是事务事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错
2020-11-09 18:57:57
163
原创 SMBMS(超市管理项目)
项目架构:数据库:搭建项目准备工作搭建一个maven web 项目配置Tomcat测试项目是否能够跑起来导入项目中需要的jar包; jsp,Servlet,mysql驱动jstl,stand…构建项目包结构编写实体类 ROM映射:表-类映射编写基础公共类1、数据库配置文件(mysql5.xx和8.xx的编写有差异)driver=com.mysql.jdbc.Driver#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8url=jdbc
2020-11-09 16:07:20
650
原创 JDBC连接搭建
什么是JDBC : Java连接数据库需要jar包的支持:java.sqljavax.sqlmysql-conneter-java… 连接驱动(必须要导入)实验环境搭建CREATE TABLE users( id INT PRIMARY KEY, `name` VARCHAR(40), `password` VARCHAR(40), email VARCHAR(60), birthday DATE);INSERT INTO users(id,`n
2020-11-09 08:37:00
159
原创 AJAX
简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。Google Suggest 使用 AJAX 创造出动态性极强的 web 界面:当您在谷歌的搜索框输入关键字时,JavaScript会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。就和国内百度的
2020-11-07 19:34:47
285
原创 监听器
步骤:编写一个监听器实现监听器的接口依赖的jar包://统计网站在线人数 : 统计sessionpublic class OnlineCountListener implements HttpSessionListener { //创建session监听: 看你的一举一动 //一旦创建Session就会触发一次这个事件! public void sessionCreated(HttpSessionEvent se) { ServletContext
2020-11-07 17:49:08
202
原创 Filter
Filter:过滤器 ,用来过滤网站的数据;处理中文乱码登录验证…Filter开发步骤:导包编写过滤器实现Filter接口,重写对应的方法即可 public class CharacterEncodingFilter implements Filter { //初始化:web服务器启动,就以及初始化了,随时等待过滤对象出现! public void init(FilterConfig filterConfig) throws ServletExcepti
2020-11-07 17:37:41
294
原创 MVC三层架构
Model业务处理 :业务逻辑(Service)数据持久层:CRUD (Dao - 数据持久化对象)View展示数据提供链接发起Servlet请求 (a,form,img…)Controller (Servlet)接收用户的请求 :(req:请求参数、Session信息….)交给业务层处理对应的代码控制视图的跳转登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判.
2020-11-07 16:07:33
166
原创 JavaBean
实体类JavaBean有特定的写法:必须要有一个无参构造属性必须私有化必须有对应的get/set方法;一般用来和数据库的字段做映射 ORM;ORM :对象关系映射表—>类字段–>属性行记录---->对象示例代码如下:class People{ private int id; private String name; private int age; private String address;}class A{
2020-11-06 17:55:54
102
原创 JSP
什么是JSPJava Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术!最大的特点: 写JSP就像在写HTML区别:HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据;JSP原理思路:JSP到底怎么执行的代码层面没有任何问题服务器内部工作tomcat中有一个work目录;IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录浏览器向服务器发送请求,不管访问什么资源,其实都是在访
2020-11-06 17:39:32
163
原创 Javaweb开发小知识
想要让web页面正常显示字样:req.setCharacterEncoding("utf-8");resp.setContentType("text/html");resp.setCharacterEncoding("utf-8");PrintWriter writer = resp.getWriter();writer.write(”string“);或者可将resp的部分换成:resp.setHeader("Content-Type", "text/html;charset=utf-8"
2020-10-31 14:52:37
86
原创 IDEA开发小技巧
fori:实现for循环cookies.for:实现cookie数组循环快速创建new对象:new 类()—> Ctrl+enter
2020-10-31 14:32:09
158
原创 Session&&Cookie
Session会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话;有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学,曾经来过,称之为有状态会话;一个网站,怎么证明你来过?客户端 服务端服务端给客户端一个信件,客户端下次访问服务端带上信件就可以了; cookie服务器登记你来过了,下次你来的时候我来匹配你; seesion保存会话的两种技术cookie客户端技术 (响应,请求)session服务器技术,利用这个技术,可以保存用
2020-10-31 10:55:32
851
原创 response实现重定向
重定向一个web资源B收到客户端A请求后,B他会通知客户端A去访问另外一个web资源C,这个过程叫重定向常见场景:登录页面 resp.senRedirect("/…")面试题:请你聊聊
2020-10-30 17:20:06
165
原创 ServletContext
web容器在启动时,会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用servletContext:整个应用范围:服务器范围,只要服务器不关闭,数据一致存在共享数据我在这个Servlet中保存的数据,可以在另外一个Servlet中拿到protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Ser
2020-10-29 14:34:08
131
原创 Servlet
简介:开发动态web的一门技术开发Servlet程序步骤:编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中Servlet接口有两个默认的实现类:HttpServlet,GenericServletMaven环境优化修改web.xml为最新的将Maven的结构搭建完整编写一个Servlet程序编写一个普通类实现Servlet接口,直接继承HttpServlet重写HttpServlet父类两个方法,doGet或doPostpublic class
2020-10-26 21:15:36
111
原创 Web概念
web就是网页静态web提供给所有人看的数据始终不会变化,如HTML,CSS缺点:web页面无法动态更新,所有用户看到的都是同一个页面无法和数据库交互,数据无法持久化动态web提供给所有人看的数据始终会变化,每个人在不同时间地点看到的信息各不相同技术栈:servlet、JSP、AHP、PHP在Java中,动态web资源开发的技术统称为JavaWeb缺点:假如服务器的动态web资源出现了错误,我们需要重新编写后台程序,重新发布(停机维护)优点:web页面可以动态更新可以和数据
2020-10-25 15:54:52
162
原创 SpringMVC架构
什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Servic
2020-10-25 10:06:45
769
原创 异常Exception
异常定义:异常指程序运行中出现的不期而至的各种状况异常发生在程序运行期间,影响了正常的程序执行流程Throwable是超类分类:检查性异常:用户错误或问题引起的异常运行时异常错误ERROR:脱离程序员控制的问题Error由Java虚拟机生成并抛出,大多数错误与代码编写者执行的操作无关Exception由程序逻辑错误引起的Error与Exception的区别:Error通常是灾难性的致命错误,程序无法控制和处理,一旦出现,JVM一般会选择终止线程Exception通常情况下可以被程序
2020-10-22 21:26:28
180
原创 内部类
定义:在一个类的内部再定义一个类比如A类中定义一个B类,那么B类相对A类来说就成为内部类,而A类相对B类就是外部类一个Java文件中只能有一个public class,但可以有多个class分类:成员内部类静态内部类局部内部类匿名内部类成员内部类通过外部类来实例化内部类Outer.Inner inner = new outer.new Inner();内部类可以获取外部类的私有属性和私有方法静态内部类内部类定义时加上static局部内部类方法里面定义的类匿名内部类没有名
2020-10-22 20:31:32
86
原创 接口
普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有接口:只有规范,自己无法写方法(专业的约束!约束和实现分离:面向接口编程)定义:接口就是规范,定义的是一组规则接口的本质是契约面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口关键字:interface接口中的所有定义其实都是抽象的public abstract实现类命名规范:接口名+Impl 关键字:implements实现了接口的类,就需要重写接口中的方法区别于abstract的extends单继承,imple
2020-10-22 19:47:08
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人