自定义博客皮肤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上安装nginx及实现反向代理

nginx是高性能的http和反向代理的服务器。占用内存少,并发能力强。主要作用有:反向代理、负载均衡、动静结合。接下来我将描述一下如何安装nginx,同时实现反向代理功能。1.安装nginx只需要一个命令:sudo apt-get install nginx即可实现安装。安装完成之后,安装后的位置在/etc中。输入命令: nginx -v 如果有版本,则表示安装成功。启动nginx的命令有:service nginx start//或者systemctl start ngi

2021-11-06 18:46:28 2379 2

原创 最大子序和环形子数组最大和(Java,动态规划)

最大子序和https://leetcode-cn.com/problems/maximum-subarray/思路:使用动态规划思想,在这里我使用一个temp表示当前的和,max表示最大值代码如下: if(nums.length==0)return 0; if(nums.length==1)return nums[0]; int temp=nums[0]; int sum=nums[0]; for (int i = 1; i < nums.leng

2021-10-06 10:27:06 502

原创 求字符串按照字符出现字数由多到少排序,如果数量一致,从a-z(小到大)排

求字符串按照字符出现字数由多到少排序,如果数量一致,从a-z(小到大)排eg: “We Attack at Dawn”输出:a:4t:3w:2c:1d:1e:1k:1n:1最终结果: a t w c d e k n思路:开始和弄攘夷想到用hashmap来存储,后来存储了不知道如何比较。。以至于该问题没有办法进行下去,看了网上之后在知道:可以借助List<HashMap<,>> 来存储hashmap的信息,再只用自定义的Collection.sort()方法

2021-09-19 16:22:35 522

原创 用友一面面经

1.介绍一下io流,知道多少说多少。答:https://www.cnblogs.com/zhaosq/p/9889774.htmlFileInputStream用到了什么设计模式?BufferInputStream呢?FileInputStream用到了适配器模式;BufferInputStream用到了装饰器模式//1、获得子节输入流 FileInputStream fileInputStream=new FileInputStream(file); //2、构造转换流(是继承

2021-09-19 10:29:19 285

原创 git使用教程

一.配置密钥首先下载git :https://git-scm.com安装好后,在桌面上右击:出现git bash here 和git gui here进入 git bash1.#配置用户名git config --global user.name "username" //名字 可以和注册时候的不一致2.#配置邮箱git config --global user.email "username@email.com" //注册时的邮箱3.配置ssh免密登录ssh-keygen -t

2021-08-21 16:23:21 181 1

原创 grasp介绍、应用及学习心得

grasp介绍、应用及学习心得一、grasp介绍二、grasp应用三、学习心得一、grasp介绍引言:设计模式是关于类和对象的一种高效、灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一切都是空谈,那么类和对象是从那冒出来的呢?这时就需要比23种设计模式更重要更经典的GRASP模式登场了。GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”,GRASP一共包括9种模式,如何决

2021-05-18 23:27:01 3234

原创 从类、API、框架三个层面学习如何设计可复用软件的具体要求及学习心得体会

从类、API、框架三个层面学习如何设计可复用软件的具体要求及学习心得体会一、可复用软件介绍二、从类、API、框架三个层面分析三、学习心得一、可复用软件介绍可复用软件概念介绍:软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相近的软件或软件模块的过程。该软件可以是已经存在的软件或是专门的可复用软件,称为(软)构建。首先软件的复用可以从两方面展开:1)面向复用的编程:开发出可复用的软件2)基于复用编程:利用已有的可复用软件搭建应用系统复用级别主要包括以下内容:(1)代码的复用

2021-05-18 22:49:45 415

原创 软件构造——17.常规表达式和语法(翻译版)

软件在 6.031免于错误: 准备更改今天纠正,在未知的未来更正。易于理解 :与未来的程序员,包括未来的你进行清晰的沟通。准备更改:旨在适应变化而不重写。目标今天的课后,你应该:1.了解语法制作和常规表达操作员的想法3.能够读取语法或常规表达,并确定它是否匹配一系列字符3.能够编写语法或常规表达式以匹配一组字符序列并将它们解析为数据结构介绍今天的阅读介绍了几个想法:语法,与生产,非终端,终端和运营商常规表达式某些程序模块以字节序列或字符序列的形式

2021-05-17 23:37:38 221

原创 旋转图像(90° 180° 270°)总结

力扣原题链接:https://leetcode-cn.com/problems/rotate-image/大家可以先记住规律:旋转90° 先水平旋转(上下交换位置) 后对角线交换旋转180° 先上下交换位置 后左右交换位置 或者先左右 后上下旋转270° 先转置 在上下旋转90°解法1: 分析其位置变化 找出规律 代码如下:public static int[][] reverse(int[][] arr){int n=arr.length-1; //用

2021-04-29 20:29:32 3414

原创 二叉树的相关习题总结

1.问题描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)例如:给定的二叉树是{3,9,20,#,#,15,7}该二叉树之字形层序遍历的结果是[[3],[20,9],[15,7]]题目分析:可以发现奇数行是从左往右输出,偶数行是从右往左,我们可以采用两个栈的思路解决问题,一个栈对偶数处理,另一个对奇数处理。public ArrayList<ArrayList<Integer>> zigzagLevelOrde

2021-03-16 19:22:27 128

原创 java反射机制

java反射机制java反射机制的应用场景具体使用获取class对象的方式获取Class对象功能:获取成员变量获取构造方法获取成员方法获取类名Filed:成员变量使用构造方法创建对象案例java反射机制的应用场景Java程序的许多对象在运行时都会出现两种类型:编译时类型和运行时类型,eg:person p=new student() 代码会生成一个p变量,该变量编译时类型为person 运行时为student;除此之外,还有更极端的情况,程序在运行时接收到外部传入的一个对象,该对象的编译时类型是obj

2021-02-19 16:12:46 112

原创 使用Java发送邮件

使用Java发送邮件前期准备发送普通消息发送带附件的邮件在日常生活中,我们除了可以使用邮箱直接发送邮件,还有没有其他办法呢。我们就一起来学习一下,如何使用Java发送邮件。前期准备首先引入依赖:<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <v

2021-02-04 13:14:05 351 1

原创 数据结构:表达式求值(java版本)包括中缀表达式求值,后缀表达式求值(逆波兰表达式求值),以及中缀转后缀

表达式求值中缀表达式求值中缀表达式转后缀表达式后缀表达式求值(逆波兰表达式求值)前缀表达式(波兰表达式)首先,大家可能不知道前缀表达式和中缀表达式,后缀表达式是什么,其有什么区别呢。我先简单介绍一下:前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。为纪念其发明者波兰数学家Jan Lukasiewicz,前缀表达式也称为“波兰式”。例如,- 1 + 2 3,它等价于1-(2+3)中缀表达式及我们正常的式子eg:1-(2+3)后缀表达式: 逆波兰

2021-01-17 11:40:16 774

原创 八大排序分析及代码(java版本)

八大排序分析及代码冒泡排序思想及规则代码选择排序思想及规则代码插入排序思想代码希尔排序思想代码快速排序思想代码归并排序思想代码基数排序思想代码(包含对负数的排序)堆排序思想代码总结(时间复杂度比较)冒泡排序每次比较相邻的两个数,如果逆序则交换 依次找出最大的思想及规则规则:一共进行数组的大小-1次大的循环每一趟排序的次数在逐渐减少如果在某此次排序中,没有发生一次交换,则可以提前结束冒泡。时间复杂度:O(n^2)代码//冒泡排序 public static int[

2021-01-13 14:06:15 630 3

原创 Redis全部知识总结(概念、安装、用法、数据类型、事务、持久化、Jeids、订阅系统、缓存穿透及雪崩等)

Redis基础使用五大数据类型Redis-keyStringListSetHashZset三种特殊数据类型geospatialhyperloglogbitmaps五大数据类型Redis-key127.0.0.1:6379> keys * #查看所有的key(empty list or set)127.0.0.1:6379> set name xiaoxu # 设置key -valeOK127.0.0.1:6379> keys *1) "name"127.0.0.1

2021-01-06 20:47:26 752

原创 基于JavaWeb Mybatis+MVC(JSP + servlet + javabean)的高校就业管理系统(含项目源码)

基于JavaWeb Mybatis+MVC的高校就业管理系统项目简介基本功能简介项目要求概要设计数据模型(E-R图)数据库结构设计主要页面展示项目实现创建项目项目结构展示项目关键代码讲解首页代码学生页面企业页面管理员页面Mapper配置总结项目简介基本功能简介该高校就业管理系统项目共分为三部分,分别为:学生系统、管理员系统、企业系统。1.首页:主要分为公告信息,招聘信息和用户登录三部分,公告信息展示最近时间内学校发布的一些公告等,招聘信息主要展示一些企业的基本信息和招聘职位信息,可供查看,用户登录主

2021-01-04 22:51:28 31805 6

原创 史上功能最全Web购物车实现(基于jsp+java+servlet+dao)包括后台图书管理、实现数据库分页等功能

基本功能描述本项目实现的是一个可视化的购物车系统,其主要功能如下。用户进入登录页面进行登录,登陆成功则跳转到购物车主页面。由于登录页面在前一篇博客中已说明,本篇博客不再赘述,有需要者可以点击此链接查看。通过连接数据库显示图书信息,用户可以选择要加入购物车的物品数量,所加入的物品信息在我的购物车中即可查看。我的购物车中对所加入购物车的商品进行查看,同时可进行数量修改和删除,清空购物车等功能。图书管理页面是对数据库中的商品信息的展示,可以添加图书,也可以对价格,售卖情况等信息进行修改添加删除等,实

2020-12-07 23:42:44 10319 22

原创 jsp+dao+bean+servlet(MVC模式)实现简单用户登录和注册页面(连接数据库,登录页面包含验证码,两周内免登陆等功能)

jsp+java servlet实现简单用户登录(使用数据库,包括注册页面)功能介绍前期工作准备实现登录页面创建数据库三个页面处理欢迎界面(jsp)验证码(jsp)登录处理页面(servlet)欢迎界面实现注册页面功能介绍本项目通过使用jsp和servlet实现简单的用户登录。主要逻辑为:如果用户不存在,则首先进行注册(注册信息同步到数据库中)。进行注册后,可进入登录页面对账号进行登录。如果账号存在,则正确跳转到欢迎界面,否则提示用户账号信息输入错误。用户进行登录页面时需要填写验证码同时可勾选

2020-11-08 20:24:58 14410 36

原创 使用jsp实现成语接龙

使用jsp实现成语接龙引子成语接龙条件设计和代码分析引子成语接龙条件设计和代码分析引子:我们在学习生活中总会遇到成语接龙,那么如果让你编写程序他又该如何实现呢,让我们快一起进行研究总结,将学到的东西学以致用。成语接龙条件:1.必须为四字词语2.如果是第一个成语则可以忽略,否则需要判断该字的第一个词和上个词的最后一个词是否匹配,实现接龙。3.该篇文章中我创建了一个文件,存放成语里面只有500成语,可以做简单的开发测试,如果要精准则可以在网上下载全部成语将部分代码进行修改。设计和代码分析

2020-11-03 00:45:56 3187 3

原创 java+jsp读文件在网页上显示文件乱码???

事情是这样的: 想把一个文件的内容通过jsp在网页上显示,却发现出现乱码,开始以为是代码问题,改了多次还是不行。于是 我在普通的java类中运行该程序,发现他是可以运行的。部分代码如下。BufferedReader br = null;try{//对应文件目录 br = new BufferedReader(new FileReader(path)); String connection = br.readLine(); while (connection != null)

2020-11-03 00:04:51 313 1

原创 jsp+javabean报错(在【bean.test】类型中找不到任何属性【username】)

报错问题:这里说的是在【bean.test】类型中找不到任何属性【username】。解决方法:1.查看test类中是否含有username属性。2.需要注意如果使用的是idea编译器,在对代码进行更新后(尤其是类、属性),需要对Tomcat进行更新。早上添加属性后一直报错,修改了一早上才发现问题在此。我之前选择的是第二项(更新类和资源),此时更新的属性信息可能并没有完全进行更新。此时选择第四项(重新启动服务器)即可。...

2020-10-27 13:12:28 2622 2

原创 基于netty的聊天项目(JAVA.SE)

项目背景谈起在线聊天软件,大家会想到QQ微信等,这些通信软件极大的方便了所有人的交流,成为人们生活中不可缺少的交通工具。知其然亦需要知其所以然,基于此我们也设计实现一套类QQ、微信的聊天系统。来探究一下这类软件背后实现的真实流程。项目简介 局域网聊天系统就是类似微信的即使通讯工具。其作用就是实现一对一聊天,群聊等功能,这是我们本次探究的重点。本次项目作为SE阶段项目。主要涉及到的技术点是网络,数据库,缓存,集合,IO,多线程等,基本涵盖SE阶段的所有知识点。我们的对话基于程序运行终端,前端页面本次不

2020-08-09 14:24:56 1332 1

原创 Spring MVC介绍

Spring MVC介绍目录大纲• Spring MVC的介绍• Spring MVC的运行原理• 各个组件介绍:前端控制器,处理器适配器,处理器映射器,视图解析器• Spring MVC的使用Demo• 处理器和映射器的配置(xml配置和注解)• Spring MVC和Mybatis的整合(SSM整合)• 方法入参和返回值的详解• 图片上传功能(大文件处理的问题:图片,视频,音频)• JSON格式的数据传输• 异常处理机制• RESTFul风格的接口• 拦截器Spring MV

2020-07-07 10:41:56 203

原创 Spring介绍

学习目录Spring的介绍Spring的IOC介绍(控制反转)Spring的DI介绍(依赖注入)Spring的AOP介绍(横向切面技术)(->动态代码)低侵入式的扩展新的功能Spring和Mybatis的整合介绍 (SSM)Spring中的JDBCTenplateSpring中的事务配置Spring中的设计模式参考书籍《Spring实战》Spring的介绍Spring是一个企业级的Java应用开发的框架Spring是一个开源框架,轻量级,基础版本只有2M大小Spring主

2020-07-06 19:17:37 4755

原创 简易计算器(有界面)

(没有括号和优先级,简易计算器)界面:package javaprogram;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel; class Calc

2020-07-04 16:20:00 2567

原创 n皇后问题(回溯法 java)

问题描述:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。思路:一行一行地摆放,在确定一行中的那个皇后应该摆在哪一列时,需要当前列是否合法,如果合法,则将皇后放置在当前位置,并进行递归,回溯。每行都摆满皇后时,则产生了一种解法,将所有解法收集并返回。判断合法:当前将要摆放’Q’的位置和其他已摆放‘Q’的位置不能在同一列,且不能在同一条45度斜线或135度斜线上。这里判断是否在同一条斜线上可通过当

2020-06-19 21:31:07 764

原创 利用回溯法求序列子集(java)

求{1,2,3}的所有子集(除空)1.思路这里我们令序列{1,2,3}为数组arr,添加新的数组brr={0,0,0} 利用回溯法 如下所示,用1表示其在子集中,0表示不在。1 2 30 0 10 1 00 1 11 0 01 0 11 1 01 1 12.上代码: //递归 public static void fun(int[] arr,int[] brr,int i,int n){ if(i==n){ for (int j

2020-06-19 20:46:04 573

原创 JVM课程

学习内容JVM的基础知识跨平台性、JVM概念、JDK/JVM/JRE、JVM的生命周期JVM的工作过程类装载子系统、运行时数据区域(JMM)、执行引擎内存模型JVM的参数配置Java命令 java javacJVM的调优两个实际问题进行排查JVM垃圾回收垃圾回收算法(4种)、垃圾回收器(7种)JVM的基础知识Java的跨平台性Java中提到跨平台,想到的是JVM,但是能跨平台的是Java程序,而不是JVM。JVM是用C/C++开发的,是编译后的机器码,是不能跨平台,不同的平台需要

2020-06-18 22:53:47 95

原创 求n重幂详细过程代码及思路(java)

一. 问题描述设给定n个变量x1,x2,-----xn.将这些变量依序作底和各层幂,可得n重幂如下:,这里将上述n重幂看作是不确定的,当在其中加入适当的括号后,才能成为确定的n重幂。不同的加括号方式导致不同的n重幂。例如,当n=4时,全部4重幂有5个。试着设计一个动态规划算法,对n个变量计算出有多少个不同的n重幂。二.问题分析及算法描述(包含主要变量和函数功能介绍)方法一:一位数组问题分析:该题目看似复杂,实则可以理解为给x1-xn添加括号,使其最终结果不同,求加括号的个数。算法思想:由分析可知

2020-06-17 15:21:22 2470 2

原创 网络学习内容

网络的分层:OSI:网络划分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP:网络接口层、网络层、传输层、应用层各层协议:应用层:HTTP、FTP、SMTP、Telnet传输层:TCP、UDP网络层:IP网络接口层:ARP、RARPTCP:TCP报文头、三次握手、四次挥手、滑动窗口、重试机制、拥塞控制…TCP编程UDP:UDP报文头、UDP的编...

2020-06-04 21:25:48 269

原创 Mybatis框架学习

Mybatis框架学习Java EE阶段SSM(Spring +Spring MVC + Mybatis)数据持久层框架:Mybatis,hibernate(SSH) 和数据打交道 -》mysql ->通过Java代码操作数据库=JDBCMybatis的学习大纲• JDBC编程及存在问题• Mybatis的介绍• Mybatis原理• Mybatis的使用Demo• 配置详解全局配置文件(mybatis-config.xml)Mapper XML文件• 接口的绑定形式:配

2020-06-04 21:20:48 676

原创 算法设计与分析--最长公共子序列

最长公共子序列问题描述:给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA问题解决:1>.穷举法:列举出所有的可能,但其时间复杂度较高不可取。2>.递归法:设X=<x1,x2,x3,x4…,xm>,Y=<y1,y2,y3,y4…,yn>为两个序列,Z=<z1,z2,z3,z4…,zk&g

2020-05-25 23:00:25 685

原创 算法设计与分析--合并排序

合并排序合并排序算法是采用分治策略实现对n个元素进行排序的算法。**基本思想:**将待排序的元素分成大小大致相同的2个子集合,分别对两个子集合进行排序,最终将合并好的子序集合合并成所需要排好序的集合。1>. 递归算法://并归排序 public static void MergePass(int[] arr,int[] brr,int left,int right){ if(left<right){ //left=1 right=1 int mid=(ri

2020-05-25 22:42:32 1306

原创 快速排序及其扩展(你所知道的不知道的快排这里都有)

1.快速排序定义:它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码实现:public static int Partion(int[] arr,int left ,int right){ int temp=arr[left]; while(left<right) { wh

2020-05-18 19:14:26 306

原创 BIO实现多用户连接

/BIO进行多用户连接class Test implements Runnable { Socket socket = new Socket(); public Test(Socket s) { this.socket = s; } @Override public void run() { //进行读写操作 ...

2020-05-07 16:05:27 195

原创 B树相关知识

1.B树(B-树)基本概念2.b树的基本简单代码package 高级数据结构;/** * @author 小徐 * @createTime 2020/4/18 14:39 * @description */public class BTree { static final int M = 5;//M阶树 static final int MaxSize = (M...

2020-04-21 20:10:02 150 2

原创 BlockingQueue接口

BlockingQueue接口BlocKingQueue是并发容器的一种,在J.U.C包路径下BlockingQueue是线程安全的版本实现,是一个阻塞队列实现,该接口提供两个新的操作put/take接口特点:• BlockingQueue不接受null值,进行add/put/offer如果是一个null值,则会抛出NullPointerException• BlockingQueue可...

2020-04-09 14:31:39 256

原创 BST树及其相关操作

BST树:又称二叉排序树 ,二叉搜索树:左子树的所有节点小于根节点,右子树均大于根节点。其中序遍历的结果是从小到大排列的值。BST树的基本构造此处不仅有左右孩子,也添加了双亲节点。使其进行某些算法更加方便。class BstNode {public BstNode lchild;//左孩子public BstNode parent;//双亲节点public BstNode rchil...

2020-03-30 13:03:50 224

原创 堆排序和自制优先级队列

堆排序对二叉树里面的值大小进行调整采用的是从上往下调整,在原本的二叉树里面添加新值的情况采用的是从下往上调整。本文实现的是小根堆(是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于其左子节点和右子节点的值)。 //从上往下调整 public static void FilterDown(int[] arr,int begin,int end) { i...

2020-03-30 12:34:34 114

原创 ConcurrentHashMap知识点介绍

ConcurrentHashMapHashTable和Vector是线程安全的(本质是Synchronized),其他的集合(ArrayList…)是通过Collections.synchronized*()系列的方法来实现线程安全操作,JDK1.5后提供了线程安全的容器,在Java.util.concurrent包路径下通过继承图可知,线程安全的类在ConcurrentMap接口下,该接口有...

2020-03-26 22:40:34 109

空空如也

空空如也

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

TA关注的人

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