Java
文章平均质量分 94
陈小哥cw
这个作者很懒,什么都没留下…
展开
-
Java序列化和反序列化介绍
文章目录一,序列化和反序列化介绍二,序列化实现的方式2.1 实现Serializable接口2.1.1 普通序列化1.序列化步骤2.反序列化步骤2.1.2 成员是引用的序列化2.1.3 同一对象序列化多次的机制2.1.4 java序列化算法潜在的问题2.1.5 可选的自定义序列化1.使用transient2.可选的自定义序列化3.更彻底的自定义序列化2.2 Externalizable:强制自定义序列化2.3 两种序列化对比三,序列化版本号serialVersionUID四,总结一,序列化和反序列化介绍原创 2021-03-12 13:58:56 · 361 阅读 · 0 评论 -
【SpringMVC问题】springmvc jsp页面跳转到controller丢失项目名导致404
问题在写前台测试文件上传时,jsp跳转controller时出现404错误,查看跳转的链接里丢失了项目名具体代码如下jsp代码<%@page pageEncoding="UTF-8" language="java" contentType="text/html;UTF-8" %><form action="/fileupload" method="post" enctype="multipart/form-data"> <%--文件上传表单的name属性原创 2021-01-15 17:12:22 · 1689 阅读 · 3 评论 -
【SpringMVC问题】Invalid character found in the request target. The valid characters are defined in RFC
文章目录问题解决办法方法一:使用Tomcat7.0.69之前的版本;方法二:对url的特殊字符进行转义方法三:修改tomcat配置文件问题访问链接http://localhost:8080/spring03/requestParam7?addresses[0].city=beijing时,页面显示Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986原创 2021-01-14 14:26:10 · 2545 阅读 · 0 评论 -
【SpringMVC问题】springmvc添加mvc:default-servlet-handler后,静态资源可以访问,controller不能访问
问题springmvc添加<mvc:default-servlet-handler/>或者<mvc:resources mapping="/img/**" location="/img/"/>后,静态资源可以访问,Controller不能访问,删掉<mvc:default-servlet-handler/>后才能访问controller具体配置文件 <context:component-scan base-package="com.cw">原创 2021-01-13 16:46:09 · 935 阅读 · 3 评论 -
Java中的类加载器和双亲委派机制
一,类加载器介绍类加载器有三个:启动类加载器、扩展类加载器、应用程序加载器(系统加载器)启动类加载器 : null(不是由java实现的)启动类加载器加载java的核心类库,它负责将jdk目录/jre/lib 下面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用.所以不允许直接通过引用进行操作。扩展类加载器:sun.misc....原创 2019-12-12 16:54:01 · 215 阅读 · 0 评论 -
【JavaWeb笔记】第二章 JDBC
JDBC文章目录JDBC1.JDBC概述1.1 什么是JDBC1.2 使用 JDBC 开发使用到的包和API1.3 idea导入mysql jar包2.JDBC中各个对象详解2.1 DriverManager:驱动管理对象DriverManager 作用DriverManager类中的方法2.2 Connection:数据库连接对象2.3 Statement:执行sql的对象Statement中...原创 2019-05-22 15:25:13 · 351 阅读 · 0 评论 -
java ee jsp servlet路径问题总结
1. 根路径 > 服务器根路径 - url: http://localhost:8080/ - / > 项目根路径 - url: http://localhost:8080/14_path_war_exploded - /14_path_war_exploded2. 相对...原创 2019-05-10 08:49:01 · 383 阅读 · 0 评论 -
jsp的执行流程
1.在tomcat的web.xml中, 配置了一个JspServlet, 访问路径是*.jsp. 所有以.jsp结尾的路径都归JspServlet负责. JspServlet帮忙将所有的jsp文件转换为java代码, java代码编译成class, 运行后信息就被输出到了浏览器.2. 当客户端访问*.jsp的路径时, 被JspServlet拦下来, 将jsp文件转换为java代码, 然后编译为...原创 2019-05-10 08:34:43 · 2762 阅读 · 0 评论 -
【JavaSE笔记】第二章 进制数据类型和运算符
第二章 进制数据类型和运算符文章目录第二章 进制数据类型和运算符第一节 进制及其转换1.1 进制类型1.2 计算机为什么使用二进制而不使用十进制1.3 二进制和十进制相互转换1.4 各进制数之间的关系第二节 常见存储单位2.1 存储单位介绍位 bit字节 byte字符 :16bit计算机存储单位转换符号位字节 byte表示的数的范围字符 表示的数的范围第三节 标识符、关键字、字符编码3.1 标...原创 2019-05-22 10:38:27 · 333 阅读 · 0 评论 -
【JavaSE笔记】第一章 初识Java
第一章 初识Java文章目录第一章 初识Java第一节 Java的历史与特点1.1 Java历史1.2 Java特点第二节 **Java跨平台原理**2.1 Java运行过程2.2 字节码文件bytecode2.3 Java虚拟机 JVM2.4 JDK、JRE、JVM的区别联系2.5 Java跨平台和C跨平台的区别第三节 DOS命令入门3.1 掌握三个命令3.2 掌握三个操作3.3 了解四个命令...原创 2019-05-22 08:34:46 · 590 阅读 · 0 评论 -
git简介和安装
一,git的简介Git是目前世界上最先进的分布式版本控制系统。版本管理系统能干什么集中管理型版本管理经典的集中管理型(CVS、VSS、SVN)特点:实现了大部分开发中对版本管理的需求结构简单,上手容易。二,git的安装2.1 下载地址1、命令行工具:Git for windows下载地址:https://git-for-windows.github.io/2、 ...原创 2019-11-29 15:19:04 · 238 阅读 · 0 评论 -
Java继承-菜鸟教程
继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。生活中的继承:兔子和羊属于食草动物类,狮子和豹属于食肉动物类。食草动物和食肉动物又是属于动物类。所以继承需要符合的关系是:is-a,父类更通用,子类更具体。...转载 2019-03-05 19:49:56 · 470 阅读 · 0 评论 -
Java多线程通信问题----生产者消费者问题
目录应用场景:生产者和消费者问题分析类的设计注意解决线程通信的细节细节3:完整的线程生命周期细节4:sleep()和yield()的区别;sleep()和wait()的区别1.实现方案一:使用同步代码块实现线程通信2.实现方案二:使用同步方法实现线程通信应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费...原创 2019-04-13 11:18:26 · 720 阅读 · 0 评论 -
使用mvc模式,反射,jdbc等技术完成对数据库的访问(手机信息管理系统案例)
目录手机信息管理系统功能要求数据库设计数据库代码具体实现步骤项目目录结构具体实现代码1.test类2.数据库工具类及配置文件3.view层(视图层)4.service层5.Dao层6.实体类手机信息管理系统 功能要求 使用 Java语言实现手机信息管理的功能,Oracle11g作为数据库,主菜单包括菜单项:如图效果(1,2,3,...原创 2019-05-11 08:40:03 · 784 阅读 · 0 评论 -
Java遍历Map的4种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 2); // 1. entrySet遍历,在键和值都需...原创 2019-12-12 21:10:29 · 205 阅读 · 0 评论 -
Java遍历Set,Map的几种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 2); // 1. entrySet遍历,在键和值都需...原创 2019-09-18 10:20:24 · 422 阅读 · 0 评论 -
使用Java线程锁方式打印十次ABC
package com.cw.thread;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class PrintABC { private static Lock lock = new ReentrantLock();//通过JDK5中的锁来...原创 2019-09-18 14:16:01 · 260 阅读 · 0 评论 -
Java语言使用io流实现文件夹的复制
功能:复制文件夹技能:IO流进行文件的复制 创建文件夹 dir.mkdirs(); 递归问题1:使用字节流还是字符流 字节流 因为有二进制文件问题2:提高复制的速度 缓冲流 BufferedInputStream BufferedOutputStream 中转站:一个字节------>一个字节数组问题3:问题分解 分解1:复制一个文件 分解2:复制...原创 2019-04-09 19:51:24 · 503 阅读 · 0 评论 -
Java多线程生命周期
新生状态(New):用new关键字建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start进入就绪状态,但该线程并未真正进入运行状态。注意:只能对处于新建状态的线程调用start()方法,否则将引发IllegalThreadStateException异常就绪状态(Runnable):处于就绪状态线程具备了运行条件,但还没分配到...原创 2019-04-12 08:38:01 · 283 阅读 · 0 评论 -
利用Java实现福彩双色球项目(支持单式/复式购买)
买彩票判断是否中奖,中奖后判断是几等奖双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;三等奖...原创 2019-03-23 18:00:59 · 3265 阅读 · 0 评论 -
【Java学习2】Java常见数据类型转换
自动类型转换/*当数据类型不一样时,将会发生数据类型转换。自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成。 2. 规则:数据范围从小到大。强制类型转换(显式)*/public class Demo1 { public static void main(String[] args) { System.out.println(1024); // 这就...原创 2019-03-04 19:51:31 · 451 阅读 · 0 评论 -
数据类型分类及范围
基本数据类型【今天重点】整数型 byte short int long浮点型 float double字符型 char布尔型 boolean引用数据类型(今后学习)字符串、数组、类、接口、Lambda数据类型大小:byte,short,char—>int—>long —>float—>double// byte ...原创 2019-03-04 19:12:58 · 1831 阅读 · 0 评论 -
idea常用快捷键
psvm+enter :主方法 mainsout+enter:打印语句alt+4: 显示上次运行结果ctrl+Y:删除光标所在行ctrl+D:复制光标所在行内容,插入光标位置下面ctrl+alt+L:格式化代码()alt+enter:导入包,自动修正代码alt+ins:自动生成代码,toString,get,set等方法alt+shift+上下箭头:移动当前代码行...原创 2019-03-04 19:10:36 · 433 阅读 · 0 评论 -
Java 多态--菜鸟教程
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:多态性是对象多种表现形式的体现。现实中,比如我们按下 F1 键这个动作:如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档; 如果当前在 Word 下弹出的就是 Word 帮助; 在 Windows 下弹出的就是 Windows 帮助和支持。同...转载 2019-03-05 19:52:16 · 1945 阅读 · 1 评论 -
Java 封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加...转载 2019-03-05 19:43:29 · 341 阅读 · 0 评论 -
利用Java集合类ArrayList制作简易学生管理系统
java.util.ArrayList是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。ArrayList中可不断添加元素,其大小也自动增长ManageDynamicArray.javapackage cn.chenwei.student;import java.util.ArrayList;import java.util.Random;...原创 2019-03-05 15:23:57 · 1372 阅读 · 0 评论 -
Java三种循环之间的区别
/*三种循环的区别。1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。*/public class Demo13LoopDifference { public ...原创 2019-03-05 14:23:13 · 1059 阅读 · 0 评论 -
利用Java对象数组制作简易学生管理系统
对象数组的长度是固定不变的,无法适应数据变化的需求,为了解决这个问题,Java提供了另一个容器java.util.ArrayList集合类,让我们可以更便捷的存储和操作对象数据 利用集合类制作的代码详见我的另一篇博文https://blog.csdn.net/qq_26838315/article/details/88183834ManageStaticArray.java...原创 2019-03-05 14:17:44 · 1316 阅读 · 0 评论 -
Java四则运算当中的加号“+”有常见的三种用法
/*四则运算当中的加号“+”有常见的三种用法:1. 对于数值来说,那就是加法。2. 对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。char类型字符,和int类型数字,之间的对照关系表:ASCII、Unicode3. 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。任何数据类型和字符串进行连接的时候,结果都会变成字符串...原创 2019-03-04 19:52:40 · 1696 阅读 · 0 评论 -
Java中常见运算符
/*运算符:进行特定操作的符号。例如:+表达式:用运算符连起来的式子叫做表达式。例如:20 + 5。又例如:a + b四则运算:加:+减:-乘:*除:/取模(取余数):%首先计算得到表达式的结果,然后再打印输出这个结果。复习一下小学一年级的除法公式:被除数 / 除数 = 商 ... 余数对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍然是整数。只看商...原创 2019-03-04 19:57:43 · 512 阅读 · 0 评论 -
自己在Java学习中遇到的一些遗漏小知识点
1.break与continue区别 答 :当程序遇到continue时,它会结束当前的迭代。程序控制转向该循环体的末尾.换句话说,continue只是跳出了一次迭代,而关键字break是跳出了整个循环。注意:continue语句总是在一个循环内。在while和do-while循环中,continue语句之后会马上计算循环继续条件; 而在for循环中,continue语句之后会立即先执行每...原创 2019-03-13 19:27:49 · 336 阅读 · 0 评论 -
Java语言程序设计与数据结构(梁勇版) 基础版 课后习题 第三章
3.1import java.util.Scanner;/** * 解一元二次方程 */public class T3_1 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a...原创 2019-03-12 19:43:09 · 11057 阅读 · 1 评论 -
Java中操作符"=="和equals方法的区别
string1==string2中的操作符只能检测string1和string2是否指向同一个对象,但它不会告诉你它们的内容是否相同.因此不能用==操作符来判断两个字符串变量的内容是否相同.取而代之,应该使用equals方法string1.equals(string2)可以判断两个字符串变量的内容是否相同public class Test { public static vo...原创 2019-03-20 19:23:03 · 457 阅读 · 0 评论 -
Java多态小知识
1.代码当中体现多态性,其实就是一句话:父类引用指向子类对象。格式:父类名称 对象名 = new 子类名称();或者:接口名称 对象名 = new 实现类名称();public class Multi { public static void main(String[] args) { // 使用多态的写法 // 左侧父类的引用,指向...原创 2019-03-12 11:05:39 · 329 阅读 · 0 评论 -
Java继承与抽象类小知识以及super,this关键字用法
1.在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。例如父类是员工,子类是讲师,那么“讲师就是一个员工”。关系:is-a。定义父类的格式:(一个普通的类定义)public class 父类名称 { // ...}定义子类的格式:public class 子类名称 extends 父类名称 { // ...}2.在父子类的继承关系当中...原创 2019-03-12 10:17:23 · 411 阅读 · 0 评论 -
Java接口小知识
1.接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。如何定义一个接口的格式:public interface 接口名称 {// 接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class。如果是Java 7,那么接口中可以包含的内容有:1. 常量2. 抽象方法如...原创 2019-03-07 15:58:31 · 389 阅读 · 3 评论 -
Java编译器的常量优化
/*在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算编译之后,得到的.class字节码文件当中相当于【直接就是】:short result = 13;右侧的常量结果数值,没有超过左侧范围,所以正确。这称为“编译...原创 2019-03-04 20:00:43 · 1186 阅读 · 1 评论 -
什么叫java方法重载?
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。 Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调...原创 2019-03-05 08:31:41 · 9205 阅读 · 1 评论