自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java泛型方法解惑

概述什么是泛型?泛型,是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,然后在使用/公用时传入具体的类型这种参数类型可以用在类、方法和接口中,分别被称为泛型、泛型方法、泛型接口。为什么要使用泛型?一言以蔽之,编译时检测到非法的类型。场景:给你一个Array

2022-04-07 16:13:00 1449

原创 一文看懂JVM内存模型和类的加载

概览Java运行时数据区也就是所谓的内存模型。包括以下5部分:The pc Register(程序计数器/pc指针)Each Java Virtual Machine thread has its own pc (program counter) register. (每个java线程都有自己的程序计数器,即线程独享的。程序计数器就是用来记录下一条指令的地址的。)Java Virtual Machine Stacks(java虚拟机栈/栈)Each Java Virtual Machine t

2022-03-23 12:06:55 577

原创 java8日期总结(java.time包)

前言在java8之前,java的日期时间一直存在很大的问题:比如操作复杂,计算两个日期之差都需要大量的代码同时还是线程不安全的,比如多线程场景下使用SimpleDateFormat对象对日期时间进行格式化时就会出错。因此,java8引入了全新的时间处理API:java.time。类下面是新版日期处理API中比较常用的类:(一)获取日期类名作用Instant对时间轴上的单一瞬时点建模, 可以用于记录应用程序中的事件时间戳,获取格林威治时间Duration表示秒

2022-03-04 15:22:32 748

原创 Java深克隆实现方法

引入Java的Object类中有个clone()方法,我们都知道想要克隆一个对象,只需要实现Cloneable这个标记接口并重写clone()方法即可,但是令人烦恼的是,这个Object类中的clone()方法只能实现浅克隆,即只能将基本类型的值进行复制和引用类型的地址进行复制,没办法将引用类型指向的真正对象进行复制。,这样就导致原来对象和克隆出来的对象共享引用对象,假如一个对象里修改了引用对象,另外一个对象也将会受到影响。而我们希望的是引用对象也被复制一份,就不用共享了分析既然知道了浅克隆的原

2021-12-28 16:28:29 4251

原创 一文搞懂SpringMVC请求流程(源码角度)

从源码角度解析SpringMVC的请求流程

2021-12-11 14:07:56 880

原创 JavaWeb过滤器解决中文乱码问题

思路通过过滤器在执行Servlet之前将请求重新编码,在返回客户端前重新编码,所以要分为两大类处理,一类是处理请求乱码,一类是处理响应乱码。get请求的请求参数是在url中的,而post请求的参数在请求体里面,因此要分情况处理。解决请求乱码Post乱码request.setCharacterEncoding("UTF-8")Get乱码增强request.getparameter方法,让它在获取参数时就实现重新编码。(装饰器模式的应用)自定义一个CharacterRequest继承HttpSer

2021-11-30 11:23:28 3347

原创 详解Cookie及Session

引入什么是会话会话就是日常生活中非常常见的一种现象,当你拿起电话和朋友谈笑风生直到挂断电话就是一次会话,而在Web应用中的会话过程也类似与日常生活中的会话,它指浏览器和服务器之间连续发生的一系列请求和响应过程(注意是连续发生的,比如你在网上购物的整个过程就是一个会话)。会话过程中会产生一系列的数据,比如通话会有通话内容,而客户端与服务器交互时同样会产生数据。为什么需要会话技术上面说到会话中会产生数据,而这些数据往往需要服务器进行保存,比如在购物过程中,你将商品加入购物车,然后付款,服务器需要将你的信

2021-11-27 10:43:38 756

原创 Java IO流总结

IO流概述:IO: 输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输,IO流就是用来处理设备间数据传输问题的常见的应用:文件复制;文件上传;文件下载按流向分类:输入流输出流按类型分类:字节流字符流字节流字节流抽象基类:InputStream: 这个抽象类是表示字节输入流的所有类的超类OutputStream: 这个抽象类是表示字节输出流的所有类的超类子类名特点: 子类名称都是以其父类名作为子类

2021-11-12 21:18:38 810

原创 Maven详解

概述Maven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念(见补充),Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。一句话总结就是:Maven是用来管理项目的依赖(Jar包)和构建项目的。举个栗子:用java操作MySQL数据库时你需要将MySQL的驱动程序拷贝到项目的lib目录下,有了Maven就不用你手动下载驱动并拷贝了,你

2021-10-11 22:24:43 816

原创 Spring原理初探

概念Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse OfControl:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层SpringMVC和持久层 SpringJDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE 企业应用开源框架。其实简单来说Spring的核心就是一个用来装

2021-09-23 21:13:46 243

原创 Servlet详解(二)request对象和response对象

Request对象在实现Service方法是,里面有一个ServletRequest 类型的参数,这就是Request对象。public void service(ServletRequest servletRequest, ServletResponse servletResponse)Reuqest对象的继承体系:

2021-05-30 16:40:41 260

原创 详解Servlet(一)

概念百度百科Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。简单来说就是一个运行在服务器端的小程序,本质上Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。将来我们自定义一个类,只需实现Servlet接口, 复写方法,就能实现浏览器访问能收到响应功能了。入门创建JavaEE项目定义一

2021-05-30 16:01:19 174

原创 UML用例建模详解

概述用例建模一般用在软件的需求分析阶段,用于描述系统的功能需求。用例模型用例模型由若干用例图组成,用例图展示了用例、参与者、以及它们之间的关系,用例的描述通常以正文形式描述。注:参与者可以是人,也可以是外部系统参与者与用例之间的关系:关联参与者之间的关系:泛化用例之间的关联(四种):继承使用使用也是一种继承关系包含扩展被包含的用例可以是一个单独的单元,而扩展出来的用例必须依赖于基用例,一旦基用例中扩展点给出条件满足,则扩展用例将被执行。比如vip功能就是一个扩展用例。(注意箭头方向

2021-05-29 20:04:03 2212

原创 进制转换总结详解 二进制 十六进制

日常生活中我们使用的都是十进制,但到了计算机世界我们就会接触到二进制和十六进制,大家都知道所谓十进制就是奉十进1,其实其他进制都是一样的,比如二进制奉二进1,十六进制奉十六进1。十进制转二进制十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”例1:将数除以2,得余数,直到不能整除,然后再将余数从下至上倒取,就得到结果。例2:这是十进制小数部分的转换方法,将小数部分乘以2,取整数部分,然后继续将小数部分乘以2,直到得到想要的结果(有可能一直乘不完,因此要自己

2021-05-08 21:07:00 716

原创 详解java中i++、i=i++问题

【声明:内容摘自知乎博主“热心网友赵女士”,并进行了通俗改编】今天在班里学了自增操作,先看一个简单的案例:public class Test{ public static void main(String[] args){ int a=10; int m=7+a++;// m=7+a a=a+1 System.out.println(a);//11 System.out.println(m);//17 }}i++或者++i参与到运算中的时候,有个

2021-02-23 22:37:54 3265 1

原创 超详细最常用的Linux命令教程【持续更新】

预备知识:Linux的目录结构中“/”表示根目录,然后根目录下面有较为常见的bin(存放可执行二进制文件),home(存放用户文件的根目录)还有root超级管理员目录。以上图片中root代表当前用户为root,hecs-x-medim……则代表计算机的名称,~代表的就是用户主目录,当我切换目录到test时就显示:至此,对命令行的界面有了一定的了解。语法:俗话说知其然得知其所以然,使用linux命令之前得对它的语法格式先有一定的了解,linux命令的基本格式为:command ... [optio

2021-02-23 18:12:28 407

原创 java基础-类之继承时为什么无法修改成员变量

学到继承的时候老师让我们做一个手机类的继承练习,handset是手机类(父类),它里面包含了手机所具有的一些基本属性,然后smart是子类,它继承自handset,然后下面是我的代码:当时我直接在子类smart中对成员变量进行修改,结果IDE就报错了,搞得我一头雾水,在网上找了很多答案都没有符合的,于是在教材上看到一句**“类体由成员变量和成员方法组成,对成员变量的操作只能放在方法中,方法使用各种语句对成员变量和方法体中的声明的局部变量进行操作”**...

2021-02-22 17:52:37 494

原创 变长子网划分VLSM

原理子网划分的目的是将一个大的网络划分成若干个小的网络,而划分又可以分为定长划分(每个子网中的可用主机IP地址数相同)和变长划分(每个子网中的可用主机IP地址数可以不相同),对于定长划分比较简单,在此主要分析下变长划分。实例分析1例:某单位有5个部门,需建立5个子网,其中部门A、B有60台主机,部门C有25台主机,部门D、E分别有10台主机,现有一个内部C类地址:192.168.1.0.请为该单位进行IP地址划分。解答首先分析,需要5个子网,则需要拿出3个主机位(23=8),才能满足,此时每个子

2021-01-05 22:18:57 3782 3

原创 循环语句中的陷阱

C语言中for循环和while循环中的陷阱一个很简单和明显的问题却困惑了我一下午,问题是这样的:带头结点的单链表删除操作本题要求实现删除单链表的第i个元素结点,删除成功返回1,否则返回0。解答思路是先找到第i-1个节点(头节点不计入),因为要删除第i个节点的话需要改变前一个节点的指针域,插入也是同理,运用的基本思想是循环控制,循环一次计数变量值增加一个,直到计数变量的值等于i-1,当时我理所当然的写出了关键语句 int count=0; while(count<i&&

2020-07-05 20:12:14 365

原创 5-7 近似求PI (15分) 本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。

5-7 近似求PI (15分)本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。​2​​π​​=1+​3​​1!​​+​3×5​​2!​​+​3×5×7​​3!​​+⋯+​3×5×⋯×(2×i+1)​​i!​​+⋯输入格式:输入在一行中给出精度eps,可以使用以下语句来读输入:scanf("%le", &eps);输出格式:在一行内,按照以下格式输出π的近似值(保留小数点后5位):PI = 近似值输入样例:1E-5输出样例:PI = 3.14158解法

2020-06-17 21:41:54 24987 6

原创 C语言中for循环里面控制变量i的作用域问题

刚刚接触C语言或者还不怎么熟练的同志们可能会遇到一些关于变量作用域的问题。今天我们一起来研究研究C语言中for循环里面的i的作用域问题:for(int i=0;i<5;i++) { for(int i=0;i<3;i++) printf("5\t"); printf("\n"); }初次看到这种写法的时候肯定会有很大的困惑,比如说第一次大循环时i是0,但等它结束,由于内层循环结束时i值为2,那是不是第二次大循环时i++就等于3了呢,然后内层循环就无法进入,这样想合情合理

2020-06-13 23:07:05 8479 2

原创 PTA4-5 龟兔赛跑 (20分)

乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?输入格式:输入在一行中给出比赛时间T(分钟)。输出格式:在一行中输出比赛的结果:乌龟赢输出@@,兔子赢输出_,平局则输出--;后跟1空格,再输出胜

2020-05-12 22:23:13 313

原创 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1​3​​+5​3​​+3​3​​。

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1​3​​+5​3​​+3​3​​。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370371407代码实现:#include<s...

2020-04-27 15:36:44 22634 5

原创 线性表——顺序表的插入删除

在数据结构中,线性结构可以说是一种非常重要的结构,因此我们要熟练掌握对线性表的一般操作。顺序表顺序表是一种类似于数组的数据结构,其特点就是逻辑上相邻的数据,其物理次序也是相邻的。初始化**顺序表的初始化就是构造一个空的顺序表。1.为顺序表分配一个预定大小的数组空间,使elem指向这段空间的基地址(首地址)2.将当前表长设为0Status InitList (SqList &amp...

2020-04-26 11:10:45 582

原创 排序算法汇总——C语言版

一、选择排序法首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾,重复操作。算法分析:第一轮比较是数组中的第一个元素与其他的元素一 一对比,只要找到比它小的,它两就交换顺序,所以第一个相对于已经进行比较过的元素而言是最小的,继续比较下去,当它和所有的元素都比较完之后,它就是所有元素中最小的有一个了。第二轮比较...

2020-04-03 21:34:43 124

原创 C语言中变量的作用域问题

C语言中有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用,大体上可将变量分为以下两种:全局变量:一般而言对整个程序都有作用,定义在所有函数外部的变量。局部变量:只对某个函数具有作用,当函数调用结束时,变量也随即消失 在函数内部定义的变量。...

2020-03-23 09:04:56 406

原创 用C语言打印自定义金字塔

打印金字塔是一个经典的编程问题下面我们用C语言来实现。#include<stdio.h>int main(void){ intn,i; printf("请输入要打印的层数"); scanf("%d",&n); for (i=1;i<=n;i++) { //1.先打印(n-i)个空格 for(i...

2020-03-16 19:41:19 3513

原创 scanf()混合输入字符和数字时遇到的问题

初学者使用scanf()读取混合数字和字符时会遇到以下的现象:#include<stdio.h>#include<stdlib.h>int main(){ int a; char c; scanf("%d%c",&a,&c); printf("a=%d\nc=%c",a,c); system("pause"); return 0;}...

2020-03-12 15:16:24 10332 2

原创 整数倒序显示

问题:程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。问题分析:想要将一个整数进行倒序显示,我们首先观察规律可以发现原来数字的最高位变成了现在数字的最低位,中间位数的顺序也在相应的发生改变,因此,想要完成这个任务我们首先就应该把这个整数的各个位分离出来,然后重新组合。问题解决假如我们输入的数为123,...

2020-03-09 17:58:54 756

原创 C语言中scanf()函数中的&是什么

困惑初学者的C语言中scanf()函数中的&到底是何方神圣对于初入江湖的少侠而言,肯定有过这样一个困惑:为什么在使用scanf函数输入数据时有时需要在参数前加一个&,而有时却不用。今天bingo君就给各位少侠解答。在回答"&“是什么之前我们先来看看scanf:scanf函数的函数原型是这样的int scanfint scanf(const char * restric...

2020-03-01 13:12:00 10319 1

空空如也

空空如也

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

TA关注的人

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