- 博客(61)
- 收藏
- 关注
原创 对象------创建对象的几种方式
Java中创建对象的四种方式1.new 对象2.反射调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.反序列化调用java.io.ObjectInputStream对象的 readObject()方法,读取存储了对象信息的二进制文件new ObjectInputStream(new FileInputStream("********"))...
2021-01-20 01:33:21 168
原创 面试---一些算法题
题正整数取出每一位放到数组中package test;import java.util.Arrays;import java.util.Scanner;/** * 正整数取出每一位放到数组中 */public class Demo1 { public static void main(String[] args) { while (true) { int num = new Scanner(System.in).nextInt();
2021-01-18 20:58:59 152
原创 面试---SSM、springboot
目录mybatis谈谈对mybatis的理解:mybatis是什么(能说)谈谈对mybatis的理解:MyBatis有哪些优点(能说)mybatis架构及简单说明(基本了解)简述MyBatis的体系结构(能简单叙述)mybatis和hibermate区别(了解,就记一个)spring谈谈对spring的理解:是什么,有什么用谈谈对spring的理解:哪些优势、特点Spring的架构springmvc谈谈对springmvc的理解:是什么,有什么用谈谈对springmvc的理解:Springmvc执行原理sh
2021-01-16 17:38:38 474
原创 js------Jquery/axios发送ajax请求
Ajax 技术在Jquery中应用ajax 函数应用:function doAjax(){let url="http://localhost/doAjaxGet";let params="";$.ajax({type:"GET",url:url,data:params,async:true,success:function(result){console.log(result);}});}post 函数应用:post(url[,params][,callback][,dat
2021-01-15 14:54:25 248
原创 ssm------SpringBoot
SpringBootSpring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了项目需要的框架,我们要使用或添加某个框架时,只需要在pom中添加依赖即可由springboot帮我们将其整合进项目中。https://start.spring.i
2021-01-13 20:51:47 516 1
原创 ssm------SpringMVC
目录MVC设计模式SpringMVC执行原理springmvc案例创建maven项目并添加依赖web.xml中配置前端控制器创建并配置springmvc-config.xml创建并实现HelloController类创建并实现home.jsp访问测试MVC设计模式MVC设计模式是一种通用的软件编程思想在MVC设计模式中认为, 任何软件都可以分为三部分组成:(1)控制程序流转的控制器(Controller)(2)封装数据处理数据的模型(Model)(3)负责展示数据的视图(view)并且在MVC
2021-01-12 17:55:11 152
原创 ssm------Spring
目录spring简介spring的架构Spring的优势耦合和解耦简单示例Spring IOC控制反转Bean对象的单例和多例Spring DI依赖注入set方式注入对象属性注入构造方法注入spring简介spring是分层的JavaSE及JavaEE应用于全栈的轻量级开源框架,以IoC (Inverse Of Control:控制反转/反转控制)和 AOP(Aspact Oriented Programming:面向切面编程)为核心,提供了表现层SpringMVC和持久层SpringJDBC以及业务层
2021-01-12 17:33:03 129
原创 ssm------MyBatis
目录MyBatis概述MyBatis优势对比1、使用传统方式JDBC访问数据库:2、使用mybatis框架访问数据库:mybatis-config.xml映射关系实体类Emp接口EmpMapper映射文件EmpMapper.xml映射文件标签说明MyBatis增删改查mybatis中的占位符#{}占位符${}占位符动态SQL标签if、where标签foreach标签MyBatis概述MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foun
2021-01-12 17:04:16 103
原创 socket网络编程------文件上传实例
这里写目录标题流程分析:优化分析代码实现服务端客户端流程分析:【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。【服务端】获取输出流,回写数据。【客户端】获取输入流,解析回写数据。优化分析1.文件名称写死的问题服务端,保存文件的名称如果写死,那么最终导致服务器硬盘,只会保留一个文件,建议使用系统时间优化,保证文件名称唯一,代码如下:FileOutputSt
2021-01-11 18:24:46 79 1
原创 file文件操作
用Java写一个递归遍历目录下面的所有文件import java.io.File;public class Counter { public static void main(String[] args) { //取得目标目录 File file = new File("D:"); //获取目录下子文件及子文件夹 File[] files = file.listFiles(); readfile(files);
2021-01-11 17:29:27 79
原创 http---基础问题
简述什么是HTTP协议?HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。(描述超文本)HTTP规定了浏览器/客户端和服务器之间的通信方式(规则)HTTP协议主要规定了浏览器在发送请求给服务器时必须要遵循什么格式以及规定了服务器在做出回应(响应)给浏览器时必须要遵循什么格式请求访问文本或图像等资源的一端称为客户端, 而提供资源响应的一端称为服务器端。HTTP协议主要特点:无连接(短连接):无连接的含义是限制每次连接只处理一个请求。服务器处理
2021-01-08 18:50:52 140
原创 线程池------深入了解线程池
目录一、线程池的核心类:ThreadPoolExecutor类先来看ThreadPoolExecutor类的具体实现源码再来看AbstractExecutorService的代码实现(仅大致浏览):再来看ExecutorService接口的实现:再来看一下Executor接口的实现:Executor继承结构分析ThreadPoolExecutor类中的几个重要方法二、线程池的实现原理1.线程池状态2.任务的执行先来看一下ThreadPoolExecutor类中其他的一些比较重要成员变量进入正题,分析 任务从
2021-01-08 15:51:27 96
原创 http------cookies和session(区别)
CookieCookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。SessionSession是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以
2021-01-08 02:18:36 93
原创 http------一个网页从请求到最终显示的完整过程
请描述一个网页从请求到最终显示的完整过程?1.在浏览器中输入网址;2.发送至DNS服务器并获得域名对应的WEB服务器的IP地址,3.与WEB服务器建立TCP连接;4.浏览器向WEB服务器的IP地址发送相应的HTTP请求;5.WEB服务器响应请求并返回指定URL的数据,或错误信息,如果设定重定向,则重新发起请求重定向到新的URL地址。6.浏览器下载数据后解析HTM L源文件,解析的过程中实现对页面的排版,解析完成 后在浏览器中显示基础页面。7.分析页面中的超链接并下载图片、js等资源显示到当前
2021-01-08 02:12:29 408 1
原创 http------状态码(常用)
• 200 请求已成功,请求所希望的响应头或数据体将随此响应返回。• 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。• 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。简单的表达就是:服务端已经执行了GET,但文件未变化。• 404 请求失败,请求所希望得到的资源未被在服务器上发现• 500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错
2021-01-08 01:22:49 84
原创 Http------3次握手4次挥手
TCP三次握手PS:TCP协议中,主动发起请求的一端称为『客户端』,被动连接的一端称为『服务端』。不管是客户端还是服务端,TCP连接建立完后都能发送和接收数据。起初,服务器和客户端都为CLOSED状态。在通信开始前,双方都得创建各自的传输控制块(TCB)。 服务器创建完TCB后遍进入LISTEN状态,此时准备接收客户端发来的连接请求。第一次握手 客户端向服务端发送连接请求报文段。该报文段的头部中SYN=1,ACK=0,seq=x。请求发送后,客户端便进入SYN-SENT状态。PS1:SYN=1.
2021-01-08 00:27:54 99
原创 集合------HashMap原理
目录01、摘要02、简介03、源码解析概述3.1、通过 K 获取数组下标3.2、put 方法的详细执行3.3、resize 扩容过程3.3.1、jdk1.7 的扩容实现源码部分3.3.2、jdk1.8 的扩容实现3.4、get 方法获取参数值3.5、remove 删除元素04、总结01、摘要Map 的实现类有 HashMap、LinkedHashMap、TreeMap、IdentityHashMap、WeakHashMap、Hashtable、Properties 等等。本文主要结合 JDK1.7
2021-01-07 23:54:27 144
原创 web
自问自答:串讲:http中,get post 特点http中,get post 特点区别CSS的四种引入方式js五大基本数据类型 Number String Boolean Undefined Nulljs定义函数 定义数组 定义对象宝典:1.3.1 请描述一个网页从开青求到最终显示的完整过程?...
2021-01-07 21:02:38 132
原创 servlet------jsp九大隐式对象、四个作用域
jsp九大内置(隐式)对象1.PageContext----------------------JSP的页面容器-------------------------------------javax.servlet.jsp.PageContext2.request------------------------------获取用户的请求信息------------------------------javax.servlet.http.HttpServletrequest3.response-----
2021-01-07 20:44:03 249
原创 数据库------数据库基础、mysql数据库
数据库关系型数据库特点有行和列(又叫字段、域)表设计-表关系a) 一对一: 任意跳转一张表b) 一对多: 在多的一张表中保存两张表直接的关系c) 多对多: 通过一张中间表保存两张表直接的关系表与表之间关数据库范式一句话描述前3个范式:字段原子性、非主键字段完全依赖于所有主键字段、普通字段之间毫无关联数据库范式(normal form)第一范式:表中字段具有原子性,不可再分第二范式:1NF基础上,所有的 非码属性-普通字段 都必须 完全依赖于 候选码属性-(多)主键(
2021-01-07 19:09:36 1059
原创 设计模式------工厂模式
说明一个接口有多个实现类定义一个工厂类,工厂类可以根据条件生成不同的子类(实现类)实例得到子类的实例后,可以直接调用接口中的方法而不必考虑到底返回的是哪一个子类的实例代码待补充...
2021-01-06 17:01:42 68
原创 设计模式------单例模式
第一种形式: 饿汉式(线程安全)public class Singleton {private Singleton(){}//注意这是 private 只供内部调用 private static Singleton instance = new Singleton(); //这里提供了一个供外部访问本 class 的静态方法,可以直接访问 public static Singleton getInstance() { return instance; }}第二种形式:懒汉式pub
2021-01-06 16:38:55 53
原创 异常------异常结构、用处、分类
结构1、所有的异常类是从 java.lang.Exception 类继承的子类。Exception 类是 Throwable 类的子类。2、所有的非检查性异常都继承自java.lang.RuntimeException。3、所有的检查性异常都继承自java.lang.Exception,是RuntimeException以外的异常;4、根据程序编写时是否检测报错:分为检查性异常(checked exceptions,也叫编译时异常)和非检查性异常(unchecked exceptions)5
2021-01-06 16:23:27 232
原创 垃圾回收
垃圾回收的常规问题GC 是什么?垃圾回收 内存管理:java的重要特性,作用是释放不再被使用的内存。为什么要有 GC?像c++就没有垃圾回收,需要手动管理,垃圾对象需要手动释放,浪费精力一旦垃圾对象累积,没有及时释放、回收,就会造成内存溢出垃圾回收的优点Java 语言中一个显著的特点就是引入了垃圾回收机制,使得 Java 程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java 中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾回收可以有效的防
2021-01-06 10:57:15 98
原创 java对象------创建对象时,各属性、方法的执行顺序/流程
总执行顺序/流程分析启动程序开启父类加载父类静态 属性/代码块开启子类加载子类静态 属性/代码块子类main方法(此处把main方法写在了子类里面,才有该步)进入子类构造由子类构造直接进入父类构造(因为父类构造写在子类构造的第一行)父类构造代码块父类构造方法(中的局部代码块)子类构造代码块子类构造方法(中的局部代码块)代码演示class Parent { public static String p_StaticField = "父类-静态变量"; publi
2021-01-06 00:27:35 440 3
原创 第一次创建一个对象(new)时发生了什么
1.加载类的字节码文件(Xxx.class文件)进方法区2.在堆中生成类的Class对象,作为访问方法区数据的入口3.在栈内存为目标对象的引用变量开辟空间4.在堆内存为目标对象开辟空间5.对目标对象的成员变量进行默认初始化6.对目标对象的成员变量进行显示初始化7.目标对象初始化完毕,此时可以把目标对象的地址赋值给引用变量说明:创建目标对象时,需要通过Class对象得到类的属性和方法等信息如果不是第一次创建对象,则1、2步已完成,不会再发生(除非Class对象被回收)...
2021-01-06 00:11:17 108
原创 静态代理(草稿)
代码MailServicepublic interface MailService { boolean sendMail(String msg);}MailServiceImpl@Servicepublic class MailServiceImpl implements MailService { @Override public boolean sendMail(String msg) { // OCP(开闭原则-->对扩展开放,对修改关闭)
2021-01-05 19:53:03 88
原创 多线程------实现多线程的几种方式
JAVA多线程实现的几种方式继承Thread类创建线程实现Runnable接口创建线程通过线程池创建线程实现Callable接口通过FutureTask包装器来创建Thread线程使用ExecutorService、Callable、Future实现有返回结果的线程1、继承Thread类创建线程构建Thread子类public class MyThread extends Thread { public void run() { System.out.println
2021-01-05 15:54:47 218
原创 二分查找
目录二分查找简述核心代码二分查找简述二分法查找是在一组有序数据中寻找目标值,并获得目标值所在的下标位置。二分法查找也叫折半查找,基本逻辑是每次都向中间位置找,然后缩小一半范围再向中间位置找。查找结束时,低位下标和高位下标可以重叠如果低位下标和高位下标交叉,则说明查找的目标值不存在。最终低位下标值则是目标值应插入的位置注意:正整数/2是向下取整,所以最后的交叉必然是高位下标越过低位下标导致(具体看下图)核心代码 public class BinarySearch { publ
2021-01-05 12:37:52 67
原创 javase.pdf
2-string池4-string、stringbuilder、stringbuffer常量字符数组 线程安全 性能 并发5-异常的根类 throwable -普通类 -可以new一般严重错误 :Error (处理机制同运行时异常) 比如说内存溢出。不太严重 :Exception希望必须明确处理 :编译时异常----抛出时(throw),必须明确声明异常(throws),上一级必须捕获 或者 显示的声明/抛出(throws)可以处理也可以不处理 :运行时异常-----抛出
2021-01-05 10:51:12 278
原创 流------缓冲流、转换流、序列化流、打印流
目录缓冲流概述分类字节缓冲流构造方法通过字节缓冲流----实现高效复制大文件字符缓冲流构造方法特有方法转换流先来看:字符编码和字符集字符编码字符集再来看:FileReader读取文本文件乱码问题转换流----图解InputStreamReader类声明构造方法OutputStreamWriter类声明构造方法转换文件编码序列化流概述ObjectOutputStream类----实现序列化声明构造方法序列化方法对象序列化的条件对象序列化测试案例:ObjectInputStream类----反序列化声明构造方法
2021-01-04 00:28:53 157
原创 字符集----编码
字符集 Charset:也叫编码表。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等。计算机要准确的存储和识别各种字符集符号,需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBK字符集、Unicode字符集等。可见,当指定了编码,它所对应的字符集自然就指定了,所以编码才是我们最终要关心的。ASCII字符集 :ASCII(American Standard Code for Information Interchange,美国信息交换
2021-01-03 23:42:41 100
原创 流------I/O、字节流、字符流、I/O异常处理、BIO,NIO,AIO
目录IO概述什么是IOIO的分类IO中的顶级父类字节流字节输出流-OutputStream字节输入流-InputStreamFileOutputStream类声明:构造方法写出字节数据数据追加续写写出换行FileInputStream类声明:构造方法读取字节数据字节流----实现文件复制字符流前言-字节流读取文本文件时存在的问题字符输入流-Reader字符输出流-WriterFileReader类声明:构造方法读取字符数据FileWriter类声明:构造方法关闭和刷新(重要!!!)基本写出数据数据追加续写写
2021-01-03 22:54:03 788
原创 Lambda表达式
Lambda标准格式Lambda省去面向对象的条条框框,格式由3个部分组成:一些参数一个箭头一段代码Lambda表达式的标准格式为:(参数类型 参数名称) -> { 代码语句 }格式说明:小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。->是新引入的语法格式,代表指向动作。大括号内的语法与传统方法体要求基本一致。使用Lambda标准格式(无参无返回)例1:public interface Cook { void makeFoo
2021-01-02 02:26:51 181
原创 多线程------线程池(初识)、几种常见的线程池及实现(初步了解)
线程池思想概述/概念频繁创建线程,会大大降低系统的效率,因为创建线程和销毁线程需要时间。在Java中可以通过线程池来达到线程复用,即执行完一个任务,并不被销毁,而是可以继续执行其他的任务线程池:其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。线程池的工作原理(图解)线程池的好处降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。提高响应速度。当任务到达时,任务可以不需要的等到线程创
2021-01-02 01:36:34 212
转载 多线程------等待唤醒机制、线程间通信、生产者与消费者问题
线程间通信概述:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如何保证线程间通信有效利用资源
2021-01-02 00:49:44 159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人