
java
辛聪明
你的选择,决定了你的极限和高度。当下不负,未来不迎。
展开
-
JAVA之语法糖
一、概念编译器是一种计算机程序, 它主要的目的是将便于人编写、阅读、维护的高级计算机语言所写的源代码程序, 翻译为计算机能解读、运行的低阶机器语言的程序, 即可执行文件。而 javac 就是java语言中的编译器, 它用于将 .java 文件转换成JVM能识别的 .class 字节码文件, 反编译则是将 .class 文件转换成 .java 文件。语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·兰丁发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能原创 2020-09-04 10:51:04 · 1146 阅读 · 0 评论 -
过滤器Filter
一、什么是FilterFilter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务zhi器管理的所有web资源。例如实现URL级别dao的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。例如对Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。Filter使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它原创 2020-08-27 11:26:41 · 282 阅读 · 0 评论 -
分片上传、断点续传
分片上传、断点续传1、分片上传HTML<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <h2>分片上传</h2> <p> 选择文件: <input type="file" id="file" name=原创 2020-08-27 09:47:41 · 527 阅读 · 0 评论 -
JAVA反射
一、类加载(将class文件读入内存,创建一个java.lang.Class对象)当程序还未使用某个类的时候,如果该类没有被加载到内存中,则系统会通过类的加载、类的连接、类得初始化三个步骤对类进行初始化,如果不要出现意外,JVM虚拟机会连续执行这三个操作,所以会把这三个步骤统称为类加载或类的初始化。1、类加载时机二、反射反射机制:在运行时去获取一个类的变量或方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。这种动态性,极大增强了程序的灵活性,程序不用再编译期就完成确定,运原创 2020-08-25 14:10:39 · 223 阅读 · 0 评论 -
Socket
一、网络基础1、两台计算机如何通过网络进行通信?必备条件:三元组【ip地址,协议,端口】(1)唯一的 IP 地址(2)相同的协议(3)端口号(区分一个主机不同的应用程序,0~65535。http:80 ftp:21 telnet:23)2、TCP/IP 5层模型:(1)物理层:网线,网卡。。。(2)数据链层(3)网络层(4)传输层:TCP/IP 协议(5)应用层:HTTP超文本传输协议、FTP文件传输协议、SMTP简单邮件传输协议、TELNET远程登陆协议3.原创 2020-08-24 15:32:23 · 504 阅读 · 0 评论 -
ThreadLocal
一、ThreadLocal是什么线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。二、源码分析几个主要方法://初始值protected T initialValue() { return null; }//获取值 public T get() { Thread t = Thread.currentThr原创 2020-08-24 10:52:01 · 167 阅读 · 0 评论 -
AJAX跨域
一、什么是AJAX跨域问题、产生AJAX跨域问题的原因什么是AJAX跨域问题简单来说,就是前端调用后端服务接口时 如果服务接口不是同一个域,就会产生跨域问题AJAX跨域场景前后端分离、服务化的开发模式 前后端开发独立,前端需要大量调用后端接口的场景 只要后端接口不是同一个域,就会产生跨域问题 跨域问题很普遍,解决跨域问题也很重要AJAX跨域原因浏览器限制:浏览器安全校验限制 跨域(协议、域名、端口任何一个不一样都会认为是跨域) XHR(XMLHttpRequest)请求二、原创 2020-08-17 15:32:01 · 2228 阅读 · 1 评论 -
Spring Data JPA
目录一、Spring Data Jpa 简介二、Spring Boot整合Spring Data Jpa三、简单的REST CRUD示例四、JPAQueryFactory方式五、多表查询六、使用Mysql聚合函数七、使用子查询八、排序九、分页的两种写法十、@Query 注解一、Spring Data Jpa 简介JPAJPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范。.原创 2020-06-08 22:51:53 · 973 阅读 · 0 评论 -
SpringBoot 回顾
(一)热部署 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>(二) 整合Redis起步...原创 2020-03-10 20:04:11 · 175 阅读 · 0 评论 -
SpringMVC 回顾
一、文件上传(一)前提:form表单的enctype(表单请求内容的类型)取值必须是:multipart/form-data (默认是application/x-www-form-urlencoded) method 属性取值必须是 Post 提供一个文件选择域 <input type=” file” /> (二)原理:当 form 表单的 enctyp...原创 2020-03-09 21:22:18 · 428 阅读 · 0 评论 -
Java面试题(持续日更)
1、Java面向对象都有哪些特性以及你对这些特性的了解。继承:继承是从已有的类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类),得到继承的是子类。封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过定义的接口。我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程端口。多态性:多态是指允许不同子类型的对象对同一...原创 2020-01-13 20:23:05 · 8732 阅读 · 4 评论 -
微服务之SpringCloud
一.系统架构演变、微服务介绍1、集中式架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。2、垂直拆分:当访问量逐渐增大,单一应用无法满足需求,为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分3、分布式服务:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场...原创 2019-12-25 22:51:47 · 468 阅读 · 0 评论 -
架构设计之REST
一、REST概念是什么?表现层状态传递(Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种万维网软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。二、前后端通信请求方式?REST要求客户端向服务端发出请求以获得或修改服务器上的数据(即通过HTTP请...原创 2019-12-18 15:53:57 · 289 阅读 · 0 评论 -
Java SE中串行、并行与并发、分时调度与抢占式调度
1、并行和并发概述并行:指两个或多个事件在同一时间点发生并发:指两个或者多个事件在同一时间段内发生详谈:并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。在程序运行中,并行指多个CPU核心同时执行不同的任务;对于单核心CPU,严格来说是没有程序并...原创 2019-12-08 09:40:42 · 1789 阅读 · 0 评论 -
Java 8 之Stream
目录一、什么是 Stream?二、几个主要机制1、生成流 filter2、forEach limit3、map sorted4、并行(parallel) count5、Collectors6、统计三、操作案例1、常用stream方式2、中间件案例一、什么是 Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作...原创 2019-11-14 19:52:32 · 384 阅读 · 0 评论 -
Java 8 Lambda 表达式
一、Java8新特性Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 表达式是一种匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。Lambda 允许把函数作为一个方法的参数(即把lambda表达式作为匿名函数,传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。语法:lambda 表达式的...原创 2019-11-14 17:20:31 · 183 阅读 · 0 评论 -
log4j 教程
一、简介Log4J是 Apache 的一个开源项目(官网http://jakarta.apache.org/log4j),通过在项目中使用 Log4J,我们可以控制日志信息输出到控制台、文件、GUI 组件、甚至是数据库中。我们可以控制每一条日志的输出格式,通过定义日志的输出级别,可以更灵活的控制日志的输出过程。方便项目的调试。二、组成1、日志记录器(Loggers):控制日志的输出...原创 2019-10-16 22:15:15 · 216 阅读 · 0 评论 -
将Kafka收集到的数据保存在本地,每隔2小时上传到hdfs并删除
1、Collection.java:负责收集原始数据(消费者保存在本地的数据)到指定文件夹,并进行上传hdfs,上传成功的文件移动到待清理的文件夹package csdn;import java.io.File;import java.io.FilenameFilter;import java.io.IOException;import java.net.URI;import ja...原创 2019-10-15 22:46:55 · 749 阅读 · 0 评论 -
定时任务之EnableScheduling
@EnableScheduling是spring自带的定时任务功能步骤:1、启动类加@EnableScheduling注解 2、在具体实现方法的类上加@Component注解,在实现方法上加@Scheduled(fixedRate =1000*30)注解 3、方法中写要定时执行的任务案例:package com.test.domi.config...原创 2019-09-26 12:10:43 · 8351 阅读 · 1 评论 -
Thumbnailator教程
Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。一、导入依赖 <!-- https://mvnrepo...原创 2019-09-22 17:09:58 · 968 阅读 · 0 评论 -
System.getProperty()方法获取系统变量
Java API:getProperties() 确定当前的系统属性。 getProperty(Stringkey) 获取指定键指示的系统属性。 getProperty(Stringkey, Stringdef) 获取用指定键描述的系统属性 1 确定当前属性集合:键 相关值的描...原创 2019-09-20 15:03:07 · 871 阅读 · 0 评论 -
SpringMVC---1、入门
1、创建web工程,导入jar包2、编写HelloController控制类package com.xin.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annot...原创 2019-09-07 13:46:45 · 125 阅读 · 0 评论 -
SpringMVC---2、绑定参数(IDEA)
1、配置文件applicationContext.xml(自动生成) (约束需要自己配置)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframewo...原创 2019-09-08 14:56:21 · 125 阅读 · 0 评论 -
SpringMVC---3、绑定参数(封装集合)
1、实体类package beans;import java.io.Serializable;import java.util.List;import java.util.Map;public class Collerction implements Serializable { private List<User> list; private M...原创 2019-09-08 15:18:30 · 185 阅读 · 0 评论 -
SpringMVC---4、自定义类型转换
在前端jsp页面输入的数据类型都是String,存储在beans中会进行类型转换,存在着类型转换不成功情况,这就需要自定义类型转换。例如Date类型,需要前端输入2019/11/11格式,若2011-11-11格式错误。注意:在自定义格式之后,必须按照自定义的格式,之前的格式不再实用。1、自定义转换类,实现Converter接口package utils;import org.spr...原创 2019-09-08 16:56:16 · 135 阅读 · 0 评论 -
SpringMVC---5、获取Servlet原生API
Servlet原生API即调用HttpServletRequest,HttpServletResponce.注意:1、需要有两个JAR包:jsp-api.jar、servlet-api.jar2、中文依然会存在乱码,所以要是使用response.setContentType("text/html;charset=utf-8")设置编码格式。1、JSP页面<%-- ...原创 2019-09-08 19:52:57 · 349 阅读 · 2 评论 -
SpringMVC---6、注解
1、RequestParam:用于配置Jsp页面属性与接收类中参数名字不一样注意:使用该注解之后,jsp页面必须按照@RequestParam(name = "username")中的username一致jsp页面: <p> <a href="/ann/requestparam?username=王优秀">requestparam</a> &...原创 2019-09-08 21:20:30 · 108 阅读 · 0 评论 -
Thymeleaf简单理解
Thymeleaf是一种用于Web和独立环境的现代服务器端的Java模板引擎。Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。Thymeleaf使用Spring框架的模块,与许多常见的工具集成在一起,并且可以插入自...原创 2019-09-08 21:38:22 · 1383 阅读 · 0 评论 -
JQuery---1、文档就绪、sweetAlert弹框
jQuery是一个JavaScript函数库。jQuery是一个轻量级的"写的少,做的多"的JavaScript库。一、文档就绪事件:(jquery入口)$(document).ready(function(){ // 执行代码});或者$(function(){ // 执行代码});$(document)是一个选择器,加载了所有的html资源注意:$...原创 2019-09-09 18:05:42 · 264 阅读 · 0 评论 -
SpringMVC---7、返回值分类、转发与重定向
Model使用实现功能:前端点击实现将想要的数据放在html页面的任何位置,没有js步骤:1、前端点击实现调用controller连接<li><a href="getUserData"><span class="glyphicon glyphicon-globe"></span>个人中心</a></li>...原创 2019-09-10 12:53:03 · 267 阅读 · 0 评论 -
SpringMVC---8、ResponseBody 响应 json 数据
同步:你发起一个操作,程序需要一直等待,直到操作完成,程序才能继续执行进行下一步。异步:发送请求后不等返回结果,由回调函数处理结果。需求:使用@ResponseBody 注解实现将 controller 方法返回对象转换为 json 响应给客户端。前置知识点:Springmvc 默认用 MappingJacksonHttpMessageConverter 对 json 数...原创 2019-09-10 18:01:06 · 176 阅读 · 0 评论 -
frame框架初步解析
需求:在登陆界面输入帐号密码,点击登陆按钮之后,在数据库查询账号密码是否正确。正确即登陆成功,错误即无法登陆。简单分析:在html页面表单输入账号密码,使用serializeArray()方法获取表单全部信息。在按钮提交事件中通过ajax方式提交到指定url,在controller类中进行接收帐号密码,并通过mybatis技术在数据库中查询是否正确。最后把信息返回到回调函数。步骤分...原创 2019-09-16 15:12:55 · 1203 阅读 · 0 评论 -
SpringBoot---1、YML配置文件
springboot是基于约定的,很多配置是默认的,想要覆盖默认配置或者增加配置,就需要对application.properties和application.yml进行配置,properties是键值对形式,以前经常使用。YML文件扩展名.yml和.yaml。yml文件以数据为核心,比properties更加简洁。容易与脚本语言交互,并且支持C++,JAVA,Python等多种语言。优先...原创 2019-09-16 17:46:16 · 210 阅读 · 0 评论 -
SpringBoot与MyBatis整合
1、添加mybatis的起步依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> ...原创 2019-09-16 18:36:17 · 159 阅读 · 0 评论 -
SpringBoot整合Junit
1、添加Junit的起步依赖<!--测试的起步依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</...原创 2019-09-16 18:44:28 · 94 阅读 · 0 评论 -
MyBatis详细教程
首先看一下整体布局:1、beans:存放pojo类,用于存放数据 mapper:声明查询方法的接口类,xml文件时对应的mapper.xml文件-->写对数据库操作的sql语句 注:当mapper.xml文件放在src时必须放在对应接口同一个包,命名一致。配置文件需要指明package位置 test:测试类 u...原创 2019-09-16 19:41:37 · 1122 阅读 · 0 评论 -
浅谈Java垃圾回收机制
在Java中,如果没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。而负责编译的Java虚拟机-JVM的一个系统级线程则自动释放该内存块。垃圾的回收意味着程序不再需要的对象是垃圾信息,会被丢弃。这一设计很好地提高了资源利用,方便了空间被后来的新对象使用。Java垃圾回收机制特点1、当一个对象没有被任何引用的时候,java的垃圾回收机制就会自动回收这些对象。2、强制系统垃圾回...原创 2019-09-18 08:10:45 · 672 阅读 · 0 评论 -
MyBatis之动态sql详解
https://blog.youkuaiyun.com/lucasmaluping/article/details/101037576原创 2019-09-20 11:31:29 · 144 阅读 · 0 评论 -
Mybatis---1、介绍
1、介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理...原创 2019-09-04 10:11:30 · 138 阅读 · 0 评论