Java
雨醉东风
人生苦短,我用Python!
展开
-
Java配置环境变量&配置各种工具环境
Windows Java开发环境搭建1 安装Java开发环境的步骤目前企业中主流采用Java8,所以以Java8为例讲解Java开发环境安装步骤:下载安装配置JDK 8从网站下载JDK 8安装JDK8下载安装Eclipse从网站下载Eclipse安装Eclipse配置环境变量2 下载安装配置 JDK 8打开 http://doc.canglaoshi.or...原创 2020-04-06 14:40:45 · 979 阅读 · 0 评论 -
自己开发一个简单的MVC框架-SmartMVC
SmartMVC是什么?是一个用来简化基于MVC架构的web应用程序开发框架(类似于SpringMVC)其核心是一个通用的控制器(DispatcherServlet)使用该框架,只需要写视图和模型。该框架使前端控制器成为可复用的代码,主要完成转发动作,处理器(其中含有少量代码)封装具体业务逻辑。DispatchServlet:核心前端控制器,处理任何 *.do的请求,前端控制器处理全部 ...原创 2020-03-13 20:19:24 · 287 阅读 · 0 评论 -
Java发送邮件
Java发送邮件在pom.xml中添加相应的依赖<!--javaMail--><dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.6</ve...原创 2020-03-12 17:21:43 · 153 阅读 · 0 评论 -
自己开发注解
自己开发注解什么是java注解?注解是加在java代码中的一些特殊标记,可以在编译期间/类加载期间/运行期间/获取到注解信息,然后执行相应的处理注解可以加在方法前、类和接口前、方法参数前等,可以使用`@Target`元注解来指定使用注解的好处,为什么要使用注解?使用注解可以取代xml配置文件。注解并不影响源代码的运行注解的坏处java注解会需要使用java反射的机制,...原创 2020-03-11 20:53:14 · 179 阅读 · 0 评论 -
JSP
JSP简介(表示层技术)1.什么是JSPsun公司制定的一种服务器端的动态页面技术规范(sun公司被Oracle公司收购了)注:生成动态页面,只需要写一个以".jsp"为后缀名的文件,该文件会被容器自动转换成一个对应的Servlet然后执行。也就是说,JSP本质就是一个Servlet!(可在tomcat的安装目录下查看work目录下的D:\JavaDevTools\apache-tomc...原创 2020-03-07 20:30:37 · 188 阅读 · 0 评论 -
SpringBoot-项目5-订单模块
81. 确认订单页-显示收货地址列表此前已经完成“显示收货地址列表”功能,客户端(页面)向http://localhost:8080/addresses发请求,就可以得到收货地址列表的数据!所以,只需要在orderConfirm.html页面中,当加载页面时,就直接向以上路径发请求,获取数据,并显示在下拉列表中即可: <script type="text/javascript">...原创 2020-03-03 21:33:50 · 7808 阅读 · 10 评论 -
SpringBoot-项目4-购物车(添加入购物车,购物车列表,购物车商品数量加减操作)
64. 购物车-创建数据表# 注意:没有添加相应的not null约束CREATE TABLE t_cart ( cid INT AUTO_INCREMENT COMMENT '购物车数据id', uid INT COMMENT '用户id', pid INT COMMENT '商品id', num INT COMMENT '商品数量', price BIGINT(20) ...原创 2020-03-02 21:18:02 · 21038 阅读 · 16 评论 -
SpringBoot-项目3-商品(首页,详情页)
创建商品表及商品分类表# 商品表CREATE TABLE `t_product` ( `id` int(20) NOT NULL COMMENT '商品id', `category_id` int(20) DEFAULT NULL COMMENT '分类id', `item_type` varchar(100) DEFAULT NULL COMMENT '商品系列', `tit...原创 2020-02-29 21:51:34 · 3283 阅读 · 4 评论 -
SpringBoot-项目2-收货地址(新增,修改,删除,设为默认收货地址)
关于收货地址数据的功能分析在处理收货地址数据时,需要完成的功能有:新增收货地址、显示收货地址列表、编辑收货地址、删除收货地址、将此收货地址设为默认。以上功能的开发顺序应该是:增加 > 显示列表 > 设为默认 > 删除 > 编辑。26. 收货地址-创建数据表创建收货地址的数据表:# 注意:以下没有添加相应的非空not null约束create table t_a...原创 2020-02-27 17:35:04 · 19035 阅读 · 6 评论 -
SpringBoot-项目1-用户(注册,登录,修改密码,修改个人资料,上传头像)
1. 项目分析在设计一款软件时,在编写代码之前,应该先分析这个项目中需要处理哪些类型的数据!例如,本项目中需要处理的数据种类有:收藏,购物车,用户,收货地址,订单,商品,商品类别。当确定了需要处理的数据的种类之后,就应该确定这些数据的处理先后顺序:用户 > 收货地址 > 商品类别 > 商品 > 收藏 > 购物车 > 订单。在具体开发某个数据的管理功能之前,...原创 2020-02-22 21:41:11 · 16172 阅读 · 74 评论 -
消息摘要算法-密码加密-MD5
密码加密在处理密码加密时,不可以使用加密算法,因为所有的加密算法都是可以逆向运算的,也就是说,只要能够获取加密算法的类型、加密过程中使用的参数,就可以逆向运算,根据密文得到原文,所以,加密算法主要用于保证传输过程的数据安全,并不用能于长期存储的密码!一般,会使用消息摘要算法来实现密码加密!这种算法是根据“消息”计算得到“摘要”的算法,通常用于数据验证,即发送方和接收方的数据是否完全一致,例如下...原创 2020-02-22 20:57:06 · 968 阅读 · 2 评论 -
Java框架-SpringBoot
1. SpringBoot简介SpringBoot是一个默认就集成了绝大部分常规开发时都使用的依赖、完成了绝大部分的常规配置、基于SpringMVC的框架。SpringBoot的核心思想是约定大于配置,因为在传统的SSM项目中,创建项目后,需要自定义大量的配置,而不同的项目的配置却大同小异,甚至就是完全相同,所以,SpringBoot就直接完成了相关的配置,并要求使用者遵循配置值的约定,例如它...原创 2020-02-17 20:58:11 · 5537 阅读 · 1 评论 -
Java框架-SSM整合实现登录-AJAX-JSON
1. SSM框架整合实现用户登录1.1. 创建项目相关配置环境依赖如下:pom.xml<dependencies> <!-- SpringMVC --> <dependency> <groupId>org.springframework</groupId> <artifac...原创 2020-02-15 20:14:16 · 1413 阅读 · 0 评论 -
Java框架-MyBatis
1. MyBatis框架简介MyBatis框架可以简化数据库编程!在使用MyBatis实现数据库编程时,只需要定义每个数据操作功能的抽象方法,并配置这个抽象方法对应的SQL语句即可!当然,MyBatis框架还实现了数据库编程的其它细节,例如对查询结果的缓存等等。 2. 通过MyBatis实现插入用户数据2.1. 创建项目创建新...原创 2020-02-11 20:40:45 · 205 阅读 · 0 评论 -
Java框架-SpringMVC
1. SpringMVC框架简介MVC = Model(数据模型) + View(视图) + Controller(控制器)SpringMVC框架主要解决了VC之间的交互问题!在SpringMVC框架中,并不关心M的问题!在传统的Java EE开发模式下,是使用Servlet组件作为项目的控制器,假设项目中有“用户注册”的功能,则可能需要创建UserRegServlet,如果还有“用户登录”...原创 2020-02-07 20:56:30 · 357 阅读 · 0 评论 -
Java框架-Spring
1. Spring框架简介Spring框架主要是用于创建对象和管理对象的!2. 通过Spring框架创建对象,并从中获取所需的对象新建maven工程项目打开项目的pom.xml文件,在其中添加Spring的依赖!在使用Spring框架时,需要添加的依赖是spring-context,具体代码是: <dependencies> <dependency> &...原创 2020-02-04 20:21:54 · 177 阅读 · 0 评论 -
Java设计模式-单例模式
设计模式之单例模式单例模式是设计模式中,关于生产对象类型的设计模式的一种!单例模式的具体表现是不可以获取同一个类的多个对象,反复获取也只会得到同一个对象!假设需要将King类设计为单例的,首先,普通的类的代码例如:public class King {}这样的类是可以随意创建对象的,例如:King k1 = new King();King k2 = new King();Kin...原创 2020-02-04 20:20:20 · 105 阅读 · 0 评论 -
Java-Servlet&DAO&Thymeleaf&过滤器
Servletweb服务器负责建立底层的网络连接,负责将客户端请求的文件返回给客户端web服务软件又称为web容器,用于装Servlet组件,负责根据用户请求的路径判断出使用哪个Servlet进行响应。Servlet用于扩展Web服务软件业务功能的组件规范每一种请求都需要有一个单独的Servlet进行处理 Eclipse安装/删除Tomca...原创 2020-01-13 18:36:36 · 1628 阅读 · 0 评论 -
Java-Properties属性配置文件
属性配置文件用于读取*.properties配置文件中的数据在src/main/resources下创建一个jdbc.properties,默认是ISO8859-1编码将需要配置的信息写入此文件中id = 5name = \u7530\u4E03访问配置文件创建属性对象Properties p = new Properties();得到文件输入流InputStr...原创 2020-01-10 18:26:23 · 242 阅读 · 0 评论 -
Java-JDBC(数据库)
JDBCJDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。执行流程:连接数据源,如:数据库。为数据库传递查询和更新指令。...原创 2020-01-10 16:22:03 · 226 阅读 · 0 评论 -
Java-WebServer
【WebServer】WebServer项目是一个网络容器,模拟开源的tomcat的功能。维护若干的webapp(网络应用),并基于TCP协议与客户端(通常是浏览器)建立连接,并使用HTTP协议与客户端进行交互,使其可以访问维护的这些webapp下的资源。webapp网络应用通常包含一组页面,若干其他静态资源(图片,样式文件,脚本文件,其他素材)和业务逻辑代码。我们俗称的一个网站其...原创 2020-01-04 18:44:16 · 209 阅读 · 0 评论 -
Java-线程
【线程】多线程多线程可以让多个代码片段“同时”运行,事实上是并发运行的,多个代码片段是走走停停的。创建线程有两种方式java中所有代码都是线程运行的。main方法是虚拟机启动起来后创建的第一条线程来运行的。该线程的名字称为“main”也称主线程线程提供了一个静态的方法: static Thread currentThread() 该方法可以获取运行这个方法的线程【创建线...原创 2020-01-04 18:34:27 · 186 阅读 · 0 评论 -
Java-Socket套接字
【Socket套接字】java.net.Socket 套接字封装了TCP协议的通讯细节,使得我们使用它就可以以流的读写来完成与远端计算机的数据交换客户端:socket = new Socket(“localhost”,8080);实例化Socket的过程就是连接服务器端口的过程参数1:服务端地址的信息参数2:服务端开启的服务端口通过地址找到网络上的服务端的计算机,通过端口找...原创 2020-01-04 18:08:29 · 514 阅读 · 0 评论 -
Java-进制
进制【二进制】1.逢2进1的计数规则2.使用2进制的好处,是设备制造成本低3.java7提供了以 0b 开头的二进制直接量4.二进制算法64 32 16 8 4 2 1----------------------0 0 1 0 1 0 1-----16+4+1=215.4位数的二进制要熟练掌握6.java中将int型转换成二进制数Integer.toBinaryStri...原创 2020-01-04 12:57:25 · 232 阅读 · 0 评论 -
Java-多态
多态多态的意义同一类型的引用指向不同的对象时,有不同的实现-------行为的多态:cut()、step()、getImage()…同一对象被造型为不同的类型时,有不同的功能-------对象的多态:我、你、水…向上造型/自动类型的转换超类型的引用指向派生类的对象能造型成为的类型有:超类+所实现的接口能点出来什么,看引用的类型强制类型转换,成功的条件只有如下...原创 2020-01-04 12:35:41 · 86 阅读 · 0 评论 -
Java-接口
接口接口是一种数据类型(引用数据类型)由interface定义接口只能包含常量和抽象方法(就算不写abstract也会默认为抽象方法的)但是:从JDK1.8及以后,里面可以有普通方法(但是必须加default关键字)接口不能被实例化接口是需要被实现/继承的的,实现/派生类:必须重写接口中所有的抽象方法一个类可以实现多个接口,用逗号分隔(用implements关...原创 2020-01-04 12:26:58 · 87 阅读 · 0 评论 -
Java-内存
内存管理—由JVM管理的堆存储new出来的对象(包括实例变量)垃圾:没有任何引用所指向的对象垃圾回收器(GC)不定时到内存中清扫垃圾,回收过程是透明的,不是一发现垃圾就立刻回收,通过调用System.gc()可以建议虚拟机尽快调度GC来回收内存泄露:不再使用的内存没有被及时的回收建议:不再使用的对象及时将引用设置为null实例变量的生命周期:创建对象时存储的堆中,对象被回收时...原创 2020-01-04 10:12:30 · 81 阅读 · 0 评论 -
Java-类
类,对象类中可以包含:所有对象所共有的属性/特征--------成员变量所有对象所共有的行为-------------方法一个类可以创建多个对象同一类型所创建的对象,结构相同,数据不同类是对象的模板,对象是类的具体的实例补充同一个文件中可以包含多个类public修饰的类只能有一个public修饰的类的名称必须与文件名相同 &nbs...原创 2020-01-03 18:54:25 · 224 阅读 · 0 评论 -
Java-方法
方法(函数/过程)封装一段特定的业务逻辑功能方法尽可能的独立,一个方法只干一件事方法可以被反复多次调用减少代码的重复,有利于代码的维护,有利于团队的协作方法的定义修饰词 返回值类型 方法名(参数列表){方法体}// 无返回值:void// 有返回值:返回值类型 方法名public static void main(String[] args) {}public sta...原创 2020-01-03 13:06:38 · 113 阅读 · 0 评论 -
Java-数组
Java数组相同数据类型元素的集合是一种数据类型(引用类型)数组的声明:int[] arr = new int[10];数组的初始化:int[] arr = new int[4]; //0,0,0,0int[] arr = {1,4,7,9}; //1,4,7,9int[] arr = new int[]{1,4,7,9}; //1,4,7,9int[] arr;...原创 2020-01-03 12:55:24 · 193 阅读 · 0 评论 -
Java-运算符&分支结构&循环
运算符算术运算符:+,-,*,/,%,++,–关系运算符:>,<,>=,<=,==,!= boolean(大于),<(小于),>=(大于或等于),<=(小于或等于),==(等于),!=(不等于)关系运算的结果为boolean型,关系成立则为true,关系不成立则为false逻辑运算符:&&,||,! b...原创 2020-01-03 12:38:38 · 104 阅读 · 0 评论 -
Java-开发环境&变量&基本数据类型
Java不同的操作系统的指令是不同的;c语言的编译运行过程:.c源文件,经过编译,直接生成可执行文件(0和1)java语言的编译运行过程1).java源文件,经过编译,生成 .class字节码文件2)JVM加载 .class并运行 .class(0和1)开源:开放源代码、免费的java开发环境java编译运行过程1) 编译期:.java源文件,经过编译...原创 2020-01-03 08:55:37 · 116 阅读 · 0 评论 -
JavaAPI-String
String字符串String是不变对象,即:内容一旦创建值不可改变,若改变字符串内容必定要创建新的对象JVM对字符串的一个优化为常量池,会缓存所有用字面量形式创建的字符串对象并进行重用不是字面量形式直接创建的是不会重用对象的编译器有一个特性,凡是在编译期间就能确定一个计算表达式的结果时,编译器会直接计算并将结果编译到class字节码文件中比较字符串内容(仅仅比较值相...原创 2019-12-27 12:56:38 · 97 阅读 · 0 评论 -
Java-异常
异常java异常结构定义有Throwable类,Exception和Error是其派生的两个子类。检查性异常类,则需要继承 Exception 类。运行时异常类,那么需要继承 RuntimeException 类。异常发生的原因有很多,通常包含以下几大类:用户输入了非法数据。打开的文件不存在。网络通信时连接中断,或者JVM内存溢出。异常处理机制之:try-catch...原创 2019-12-27 12:30:10 · 107 阅读 · 0 评论 -
JavaAPI-日期时间
日期时间APIjava.util.DateDate的每一个实例用于表示一个时间,内部维护一个long值,该值记录的是自1970年元旦到当前时间Date表示的时间之间所经过的毫秒。由于Date存在时区和千年虫问题,因此操作时间的一系列API方法都“过时”了,不再建议使用因此我们现在使用的Date仅作为表示时间使用。常用方法:long getTime( )返回自 1970 年 ...原创 2019-12-26 20:46:03 · 207 阅读 · 0 评论 -
JavaAPI-常用方法重写
Object中常见的重写方法toString()方法System.out.println(Object o)该方法给对象的toString方法返回的字符串输出到控制台。toString()方法1.Object的toString方法是常见的会被子类重写的方法,该方法原始定义返回的字符串是对象的“句柄”,即地址信息,但是实际价值小。该方法很少会直接调用,都是在调用某个API时被自动...原创 2019-12-26 20:31:13 · 314 阅读 · 1 评论 -
JavaAPI-包装类
包装类包装类是用来解决基本类型不能直接参与面向对象开发的问题。使得基本类型可以以“对象”的形式存在基本类型转换成包装类:// 基本类型转换成包装类//Integer i1 = new Integer(1);//Integer i2 = new Integer(1);//== false(每new一次就创建了一个新的地址); equals()方法 true(java内部的方法都重写了...原创 2019-12-26 08:46:51 · 99 阅读 · 0 评论 -
JavaAPI-反射
反射java反射机制:反射是一种动态机制,允许java程序运行期间再确定对象的实例化,方法的调用,属性的操作等。反射可以提高代码的灵活性,但是会有更多的性能开销和较低的运行效率。因此不能过度依赖反射Class类称为类的类对象JVM中每个被加载的类都有且只有一个Class的实例与之对应,通过获取一个类的类对象我们可以得知这个类的一切信息,比如类名,有哪些方法,属性,构造器...原创 2019-12-25 20:29:28 · 93 阅读 · 0 评论 -
JavaAPI-lambda
lambdalambda简介:lambda表达式是JDK8之后推出的新特性lambda使得我们可以"函数式编程"lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)lambda最直接的感受是可以以更精简的代码完成匿名内部类的创建lambda语法:(参数列表)->{ 方法体}(parameters) -> e...原创 2019-12-25 20:19:54 · 150 阅读 · 0 评论 -
JavaAPI-Map
Mapjava.util.Map 查找表Map体现的样子是一个多行两列的表格,左类称为key,右列称为value.Map总是根据key来获取对应的valuemap有一个要求,key不允许重复,并且总是成对保存数据的。常用实现类:java.util.HashMap,称为散列表或哈希表。当今查询速度最快的数据结构.TreeMap 二叉树示例:Map<St...原创 2019-12-25 20:11:56 · 126 阅读 · 0 评论