自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 healthCode

项目整体结构配置文件:web.xml, spring.xml, springmvc.xml, mybatis.xml包:controller, dto, service, dao, domainweb.xml<!-- 注册ServletContextListener监听器。当ServletContext被创建时,该监听器会根据spring.xml创建出root ioc容器 --><listener> <listener-class>org.sp...

2020-09-06 10:37:34 1131

原创 DIYTomcat

项目结构conf:放置tomcat配置文件jre8:java运行环境,使能跨平台运行lib:第三方jar包,以及diytomcat.jar(diytomcat项目中自己写的类打成的jar包)webapps:放置web应用程序work:放置JSP生成的Servlet的class文件bootstrap.jar:仅包含cn/how2j/diytomcat/Bootstrap.classcn/how2j/diytomcat/classloader/CommonClassLoader.

2020-08-27 11:07:01 452

原创 MyBatis

1.基本用法:Mainmybatis_config.xmluserMapper.xml<mappernamespace="接口全名"><xxxid="接口方法名"parameterType="接口方法的参数类型全名"resultType="接口方法的返回值类型全名"><!--sql语句--><xxx/>...</mapper>2. mapper的配...

2020-08-25 09:06:58 122

原创 Spring MVC

基于xml的配置:1.将所有的请求都交给spring的DispatcherServlet类去处理:(web.xml)DispatcherServlet会充当一个调度器,根据请求的url,将请求交给相应的Controller去处理。2.配置springmvc的配置文件来指定Controller类以及该Controller类处理的url映射:3. Controller类是实现了spring的Controller接口的类,Controller接口需要实现如下方法:该...

2020-08-25 09:04:55 97

原创 Spring

Spring是Java SE/EE 应用的full-stack的(不是只能应用于某个层,而是在表现层、业务层、持久层都可以应用)轻量级开源框架。IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)是Spring框架的核心。IoC1. IoC的作用:削减计算机程序模块之间的耦合(削减模块间的依赖)。耦合:如,这里在类A的程序中new了另一个类(B_impl),造成了这两个类之间的耦合(类A依赖于类.

2020-08-25 09:04:19 117

原创 AJAX

传统浏览器-服务端交互:浏览器发送请求报文-->浏览器监听等待回复报文-->服务端发送回复报文(报文中包含了整个页面的HTML代码)-->浏览器清空整个当前页面,更新为接收到的整个页面的HTML代码。AJAX (Asynchronous JavaScript and XML)浏览器委托AJAX引擎代替浏览器向服务端发送请求报文-->AJAX引擎监听等待回复报文-->服务端发送回复报文给AJAX引擎(报文中仅包含json字符串)-->.

2020-08-25 09:02:06 139

原创 DNS协议

DNS(Domain Name System)系统,用于将域名转换为IP地址。其是基于UDP协议。域名和IP地址的对应关系分布式的存储在许多DNS服务器上。在访问某个域名时,浏览器首先会去请求DNS服务器,以获得该域名对应的IP,才能访问到该域名对应的服务器。...

2020-08-25 09:01:18 97

原创 HashMap&ConcurrentHashMap

HashMap在jdk1.8中具体是被实现为了一个HashMap.Node<K, V>类型的数组。Node类包含4个成员变量:int hash, K key, V value, Node<K, V> next。Node类代表一个链表节点或红黑树节点,所有hash相同的Node都被链接在了一起。在jdk1.8之后,每当有链表的长度超过8时,数组会被扩大一倍后重散列,以此来缩小链表的长度,减少对冲突元素的查找时间。当数组长度已经被扩大到64了,若之后链表长度再超过8,则该链表会.

2020-08-24 09:01:58 55

原创 HTTPS协议

背景知识·对称加密:通信双发使用相同的密钥对传输的数据进行加密和解密。(加密解密速度快;难以将密钥隐秘的传达给另一方;通信的一方要为所有想与之通信的另一方维护不同的对称密钥)·非对称加密:分为公钥和私钥。通信的一方持有私钥,并将公钥分发给所有想与之通信的另一方。使用公钥加密的密文仅可以由私钥进行解密,使用私钥加密的密文仅可以由公钥进行解密。常用的非对称加密算法有RSA。(加密解密速度慢;直接将公钥公之于众,不需要隐秘的传达;通信的一方只需要维护一个私钥即可)·密码散列函数:经过密码散列函数...

2020-08-24 09:01:03 571 1

原创 IO

File类(文件和目录的抽象表示):常用构造方法:File file = new File(String path);通过相对或绝对路径创建File对象(错误的路径不影响File对象的创建)。常用方法:String getAbsolutePath():获取该File对象的绝对路径String getPath():获取该File对象创建时用的路径String getName():获取该File对象路径的最后一级(文件名或目录名)boolean exists():该Fi...

2020-08-24 09:00:27 201

原创 JDBC

1. JDBC(Java DataBase Connectivity):其本质是java连接数据库的一套标准。具体体现就是官方定义了一堆接口,这些接口就是标准。各数据库厂商则需要去实现这些官方定义的接口,打包成一个jar包给我们使用,这个jar包也叫做数据库驱动。则在使用java操作数据库时,无论是操作什么厂商的数据库,都可以以一样的代码(使用提供的统一接口)去操作。2. JDBC中关键的几个类和接口:-DriverManager(类):驱动管理器。将厂商提供的驱动在这个类上进行注册。注册后可以通过

2020-08-24 08:58:33 65

原创 Java虚拟机

JVM:JVM结构图(由类装载子系统,运行时数据区,字节码执行引擎组成):(堆和方法区是线程共享的,栈,本地方法栈和程序计数器是线程独享的)方法区(元空间):前面讲的装载子系统,会将class文件解析装载到方法区中,里面装了比如静态变量静态常量等和类相关联的所有信息。程序计数器:指示程序下一步要执行代码的位置。堆:存对象的地方。所有new了对象的地方,它们new出来的对象的实体都是在堆区中,而它们自己只是拿着该对象的引用而已。如某个静态变量是个对象,那么方法区中会存有该...

2020-08-24 08:57:50 83

原创 Java类加载机制

类加载子系统1.类加载子系统分为三个阶段:装载,连接(验证,准备,解析),初始化装载:将class文件读入内存中,并生成这个class文件的Class类对象(由后面将会说 到的类加载器完成这个装载过程)连接:验证:验证class文件的正确性安全性等准备:为类的静态变量分配内存,并将其初始化为默认值解析:将类中的符号引用转为直接引用(将a.method()这种符号引用转为method 代码的入口地址这种直接引用)(多态在这一步被确定下来,比如Father f= new Son()...

2020-08-24 08:57:03 87

原创 Servlet&Jsp

1. Servlet接口:其中init、Service和destroy是生命周期方法init:当该Servlet第一次被请求时,Servlet容器会调用这个方法(这个方法在后续请求中不会再被调用)(通过配置可以使得该方法在容器装载该servlet时就被调用,避免了第一次请求时因为需要执行init方法而耗时过长)。Servlet容器会传入一个ServletConfig对象。service:每当该Servlet被请求时,Servlet容器就会调用这个方法。ServletRequest对象封装.

2020-08-24 08:55:51 244

原创 TCP,UDP协议

计算机网络传输层负责提供不同计算机进程与进程之间的通信,而TCP、UDP协议是位于传输层上的两个协议。TCP协议:面向连接(传输数据前后需建立和释放连接),可靠(确保对方可以收到数据,若对方未收到数据或报文不完整被接收方丢弃后,会进行重发),时延大,适于大文件传输。UDP协议:无连接(传输数据不需要建立连接),不可靠(不保证对方可以收到数据,若对方未收到数据或报文不完整被接收方丢弃后,不会重发。使用UDP协议的程序需要靠应用层去提供可靠性的保证),时延小,适用于小文件传输。通过IP地址,我们可以

2020-08-24 08:50:00 211

原创 Java内存模型

多线程中的可见性问题:这段程序的运行流程:首先主线程会进入死循环中,不断对flag变量进行检查,如果flag为true就会打印一段话。而在主线程在死循环时,子线程会将flag从false改为true。按照正常逻辑来讲,一旦子线程将flag改为true后,主线程应该就能进入if语句中打印出一段话,但是事实是,主线程永远无法进入if中。即flag的修改对主线程不可见。(注:该实验不能用print的方式去验证,任何print语句的执行都会使当前线程去更新内存)造成这个问题的原因跟Java Mem.

2020-08-24 08:49:28 101

原创 Java并发

1.线程进程:线程是独立调度的基本单位(cpu是选择某个线程来执行)。进程是拥有资源的基本单位。运行一个程序相当于是运行了一个进程,而程序中可以new出很多线程去执行某个方法,线程中可以直接访问到程序(进程)中的各种资源,比如所在类的成员变量等。(一个jvm可以当成一个进程,里面拥有堆栈等各种数据资源,系统在运行这个进程时,需要将jvm里的堆栈等各种资源数据读进内存,如果只是轮换调度这个进程里面的不同线程,那么上下文的切换不需要重新读取新的资源数据进内存,只是轮换执行不同的线程中的代码;而如果切换了进.

2020-08-24 08:47:13 84

原创 Java反射

反射:定义:Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制Class类:Java文件经过编译后生成的.class文件叫做字节码文件,而Class这个类就是用来描述.class文件的。Class类对象的创建(有三种方法):Class类对象(字节码文件对象):我们知道Class

2020-08-23 15:23:01 53

原创 Java泛型

泛型:(泛型类)(泛型接口)泛型就是比普通类或接口多了一个类型作为参数(类型变量),即上面的T(当然也可以用任意的名字,比如A,TTT等,可以类比为方法中的形参),那么在定义类或接口的时候就可以用这个T当作一个类型去使用。那么T具体是什么类就由使用这个类或接口的人决定,比如我写A<String> a = new A<>();则T就是String(相当于把String作为实参传入了)(若不传参,即写A a = new A(),则默认传入Object)(new A<>(

2020-08-23 15:22:15 141

原创 Java集合框架

1.Java的集合框架由两个接口组成,Collection和Map2.集合和数组的区别:数组长度固定集合不固定。数组可以存储基本数据类型的数据,集合只能存储引用类型的数据不能存储基本类型的数据(基本数据类型需要存其对应的包装类)3.Collection接口定义的方法:boolean add(E e):在集合末尾添加元素。集合被改动了则返回trueboolean remove(Object o):根据值删除元素(只删除一个)。集合被改动了则返回true。void clear():清..

2020-08-23 15:21:19 87

原创 Java接口和抽象类

接口:接口本质上就是定义了一堆方法,要实现这个接口就必须实现全部这些方法。那么实现了这个接口的类就可以视为是拥有了某种能力。比如Comparable接口其定义如下:例:Comparable c = new A();(A是实现了Comparable接口的类)。则调用者就能确保c对象一定是有compareTo方法的,是具有比对能力的。记住,接口就是用来给类去实现的,而不能去new(要如上例这样定义接口变量c去引用一个实现了该接口的类的对象)。接口中不能有实例域。所有成员变量都会自动看作为静态

2020-08-23 15:18:56 101

原创 Java内部类

内部类共分四种:成员内部类、静态成员内部类、局部内部类、匿名内部类(下面先说成员内部类、静态成员内部类、局部内部类,最后单独说匿名内部类)(上面这三句注释是理解这三种内部类的核心)new一个成员内部类:在Outer类的外部,为了找到这个内部类,需要在这个内部类类名前加上外部类的类名。即Outer.Inner(若在Outer类内部使用,则不需要加Outer点),可以将成员内部类当成是成员变量,将new成员内部类当作是访问这个“成员变量”的构造函数。要访问一个类的成员变量,则首先需...

2020-08-23 15:17:40 86

原创 Java设计模式

单例模式是一种确保类在整个运行期间只会有唯一一个实例的设计模式。单例模式分为:饿汉式单例和懒汉式单例。饿汉式单例在类初始化时就会实例化出该类唯一的实例,而懒汉式单例则是在需要使用该唯一实例时再去创建出这个实例。饿汉式单例:i.私有的静态常量,用以存储唯一的实例ii.创建该类唯一的实例iii.私有的构造函数,用以阻止外界去构造该类的实例iv.公有的getter。直接返回唯一的实例classA{//private static final A a = new A();...

2020-08-23 15:15:37 109

原创 Java网络编程

客户端(Socket客户端套接字)//与该ip地址上的8888端口建立TCP连接Socket socket = new Socket("127.0.0.1", 8888);//使用连接(socket)中的输入流读取对方发来的数据InputStream inputStream = socket.getInputStream();//使用连接中(socket)的输出流向对方发送数据OutputStream outputStream = socket.getOutputStream();//..

2020-08-23 15:09:25 62

原创 Java异常

异常异常的分类:所有异常都继承自Throwable类,Throwable下有Error和Exception两个子类,Exception下有N多子类,其中一个子类叫做RuntimeException,其余的都归为非RuntimeException。·运行时异常由JVM抛出,运行时异常一定是由于程序自身的逻辑等可避免的问题引起的,所以不应该在程序中去抛出运行时异常,而是应该去避免运行时异常(如IndexOutOfBoundsException就是运行时异常,是因为程序没有考虑好边界条件导致数组越界等原

2020-08-23 15:06:04 127

原创 Java零散知识点

1.正则表达式:例:字符串"tel:086-88810009999"对应正则" ^(tel:)([0-9]{1,3})([-]{1})([0-9]{8,11})$ "Java中的正则表达式通过Pattern类的静态方法compile得到Pattern的实例,用Pattern实例的matcher方法得到Matcher实例。matcher会匹配str和正则表达式regex,并根据正则表达式中的括号来分group,则第一个括号匹配到的是”tel...

2020-08-23 15:01:23 167

原创 数据库存储引擎

存储引擎是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是针对表的,在创建表的时候可以指定所要使用的存储引擎。这里主要介绍mysql中支持的其中三种存储引擎:InnoDB(mysql默认的存储引擎):支持事务;支持外键;支持行锁表锁;.frm文件存放表结构,.idb文件存放数据和索引。MyISAM:不支持事务;不支持外键;只支持表锁;.frm文件存放表结构,.MYD存放数据,.MYI存放索引。MEMORY:.frm文件存放表结构,数据直接存在内存中(服务关闭后数据就会丢失),默

2020-09-17 09:02:03 176

原创 数据库锁

锁分类--按对数据的操作粒度分为:1) 表锁:以表为单位锁定。加锁开销小;发生锁冲突的概率高,并发度低;不会出现死锁2) 行锁:以行为单位锁定。加锁开销大;发生锁冲突的概率低,并发度高;会出现死锁--按对数据的操作类型分:1) 读锁(共享锁S):若当前session对某行或表加了读锁。其它session依旧可以获取到该行或表的读锁,进行查询操作;其它session无法获取到该行或表的写锁。需要获取该行或表的写锁的操作将会被阻塞。2) 写锁(排它锁X):若当前session对某行或表加

2020-09-17 09:01:28 188

原创 CNN

import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("C:/PythonWork/Datasets/MNIST",one_hot=True)batch_size = 100n_batch = mnist.train.num_examples // batch_size x = tf.placeholder(tf.fl

2020-08-29 08:11:18 231

原创 non_linear_regression

import matplotlib.pyplot as pltimport numpy as npimport tensorflow as tf#****************************生成模拟的训练集数据*********************************#np.linspace生成一个长度为200的,数据均匀分布在-0.5到0.5间的array,#后面的[np.newaxis,:]是将生成的长度为200的array转换为1行200列的矩阵#若写成[:,np

2020-08-29 08:10:58 183

原创 fuzzy logic

1.Classical (crisp) sets:can be represented by a characteristic function(can only be zero or one):for example:In this situation, A is x>=4, so for the x like 0,1,2,3 is not belong to the set A, so the2.Fuzzy sets:can be represented by a members...

2020-08-27 11:03:41 554

原创 machine learning

1.A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.2.Machine Learning is learning from experience. It’s also called su.

2020-08-27 11:02:11 226

原创 functional programming

1.2.reducible expression(redex):for example,a function call with all of its arguments supplied is a redex, but a constant is not.3.functional language is NOR4.5.6.7....

2020-08-27 10:56:58 157

原创 Haskell

1.list:列表构造:直接输入列表[1,2,3,4,5][1..5] 输出[1,2,3,4,5][1,3,…11] 输出[1,3,5,7,9,11](构造等差数列)[1..] 输出[1,2,3,……] (构造1到无穷大的无限列表)[x*2 | x<-[1..10], mod x 2 == 1] 先构造列表[1..10],从中选出满足除2的余数等于1的数[1,3,5,7,9],最后乘2,...

2020-08-27 10:54:26 299

原创 Linux操作系统

Linux操作系统第2章进程控制2.1进程基本概念:1、进程是程序的一次运行,可以通过ps -aux命令查看系统所有进程。进程实体则是将一个程序运行起来后,它在电脑中的样子,在linux系统中,每个进程拥有独立的虚存空间,每个进程的虚存空间又被分为用户空间和内核空间,运行一个可执行的ELF文件后,文件的代码部分连续存放在该进程用户空间的低地址部分,数据部分连续存放在用户空间略高处,堆栈部分连续存放在用户空间高端(但这3部分在虚存上不连续)。而内核空间则存放该进程的task_sruct、mm_s.

2020-08-27 10:53:44 259

原创 自动机

2020-08-27 10:52:32 228

原创 动态规划

动态规划例:背包问题:背包容量W= 5物品体积价值1 2 $122 1 $103 3 $204 2 $15 怎么放能使得放进背包中的物品价值最大?解法一:暴力法,相当...

2020-08-27 10:33:35 171

原创 算法复杂度

O(g(n))表示一个函数集合定义:O(g(n)) = {f(n):存在c>0,>0,使得对所有n有0f(n)c*g(n)}例:2=O()(即2O() ,O()2)即2是属于O()定义的集合的,假设c=2,=10,则0f(n)cg(n)即022*即0,对于所有的n10,都大于,所以2O()直观上来看,其实O标记定义的就是一个上界,表示算法最糟糕的情况下主要操作的执行次数也不会超过c*(n为规模,如对n个数进行排序),所以如果某算法在最糟糕情况下的主要操作的执行次数为2,它也...

2020-08-27 10:28:26 273

原创 递归分治主定理

2020-08-27 10:25:31 157

原创 NP问题

P类问题:如果某问题已经找到了一个算法,其时间复杂度为多项式时间(如:O(n)、O(n^2)、O(n^3)、O(n^k)、O(logn)、O(nlogn)等),则该问题为P类问题。NP类问题:如果某问题,已经找到了一个算法,使得能在多项式时间内验证出某个数或结果是否是该问题的解,则该类问题为NP类问题。P类问题vs NP类问题: 能在多项式时间内解决的问题vs能在多项式时间内验证的问题注:P类问题一定是NP类问题,因为如果一个问题是P类问题,就表示该问题能在多项式时间内得...

2020-08-26 10:18:07 229

空空如也

空空如也

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

TA关注的人

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