- 博客(64)
- 收藏
- 关注
转载 servlet相关知识总结
比较好的博客地址:1.Servlet学习笔记(八):过滤器Filter详解2.Servlet学习笔记(九):监听器Listener详解
2018-08-27 18:00:52 251
转载 Maven中pom.xml中<packaging>
转自:https://blog.csdn.net/qq_36569036/article/details/53073782项目的打包类型:pom、jar、war项目中一般使用maven进行模块管理,每个模块下对应都有一个pom文件,pom文件维护了各个模块之间的依赖和继承关系。项目模块化可以将通用的部分抽离出来,方便重用;修改一部分代码不再是build整个项目,缩短了build时间;此外各模块都有...
2018-07-13 11:55:45 16542 1
转载 spring boot注解详解
转载: https://blog.csdn.net/zsq520520/article/details/55261359
2018-07-02 17:55:44 318
原创 maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...
出现上述问题的原因可能有两个:1、没有先运行父项目的clean和install2、也有可能是本地库的maven版本与远程库maven版本不同,比如我遇到的情况就是原工程运行版本是maven2,而clone到本地后,本地工程默认是maven3,需要修改之后才能编译成功。注意:从远程库中clone的工程需要取消maven工程中的test项才能运行成功。...
2018-06-05 15:10:56 16838 5
转载 JAVA三层架构,持久层,业务层,表现层的理解
转自:https://blog.csdn.net/ljf_study/article/details/64443653SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层)Struts:Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Structs属于VC层次,负责界面表现,负责MVC关系的分发。(view:沿用JSP,HTTP...
2018-05-31 16:19:00 8087
转载 在idea中构建第一个mybatisDemo
主要参考:https://www.cnblogs.com/ciscoo/p/6259138.html按照该网页是能过搭建成功的。需要注意的是:上述网页中的数据库名为mybatis,表格名为person。新建maven工程时不需要选择任何其他依赖选项。直接新建简单maven工程即可。...
2018-05-28 10:48:50 335
转载 window安装mysql
转自:https://blog.csdn.net/ct_ts/article/details/79949160基本流程按照上述链接中的教程做就好。需要注意的问题:1、解压的安装包中有可能没有my-default.ini,因此需要自己创建一个my.ini文件,文件内容如下:2、修改密码的过程中可能会出现错误:ERROR 1045 (28000): Access denied for user 'ro...
2018-05-27 14:27:40 216
转载 spring几种注解相关
@Autowired注解与自动装配:https://blog.csdn.net/heyutao007/article/details/5981555@RequestMapping 注解使用技巧:http://www.iteye.com/news/32657SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍:https://bl...
2018-05-14 20:29:03 144
转载 IntelliJ IDEA 个人觉得比较有用的网址
IntelliJ IDEA 激活:https://blog.csdn.net/zx110503/article/details/78734428InteliJ中main函数和System.out.println()快捷键:https://blog.csdn.net/shijiebei2009/article/details/44726433其他有用快捷键:https://www.ggdoc.com...
2018-04-23 21:56:55 511
转载 线程/进程间的同步机制+进程间的通信方式
转自:https://www.cnblogs.com/mydomain/archive/2010/09/23/1833369.html比较详细的可见:https://www.cnblogs.com/memewry/archive/2012/08/22/2651696.html1、管道(pipe):管道是一种半双工(同一时间只能进行一项操作,即发送数据或接受数据)的通信方式,数据只能单向流动,而且只...
2018-04-22 23:04:14 785
转载 关于JAVA的包访问权限
转载:https://blog.csdn.net/wanghao_0206/article/details/52710094众所周知,JAVA提供了许多级别的访问权限,从而可以精确的控制类、超类以及包中变量和成员的可见性。从而更好的实现封装、继承,多态。现在我们将对每一种包访问权限做一些说明,可能有遗漏或者错误,请大家多多指正。这里我们主要分析类成员的包访问权限。因为类和包的相互影响,对于JAVA...
2018-04-21 11:07:50 270
转载 JAVA中的代码块、静态代码块、构造方法、main方法执行顺序
转载:https://blog.csdn.net/lzxomg/article/details/51858664java中静态代码块,普通代码块,构造代码块区别及代码示例执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块普通代码块:在方法或语句中出现的{ }就称为普通代码块。普通...
2018-04-19 10:55:59 641
原创 二叉树的遍历(深度遍历+广度遍历)
此处以二叉树的前序遍历为例(即先遍历根节点,再遍历左节点,最后遍历右节点)其他遍历参考:https://www.cnblogs.com/gl-developer/p/7259251.html实现代码如下/*二叉树的递归遍历(前序遍历)1、深度遍历:对于一个节点,一直遍历其子节点,直到节点为null为止。*/public void depthOrderTranversal(TreeNode ...
2018-04-13 21:31:49 227
原创 排序——堆排序
堆排序:根据堆结构的性质,对数组进行排序。堆分为大顶堆和小顶堆,大顶堆是指父节点的值总是大于左右子节点的值,小顶堆是指父节点的值总是小于等于左右子节点的值。数组在进行堆排序时,需要将数组先构造成对应的堆结构,然后根据堆的性质,进行排序。大顶堆的第一个元素都是堆中的最大值,小顶堆的第一个元素都是堆中的最小值。堆排序的时间复杂度是O(nlogn).大顶堆和小顶堆排序的实现代码分别如下,注意,用大顶堆进...
2018-04-10 18:51:33 135
原创 排序——插入排序(InsertSort)
插入排序:通过构建的有序序列,将未排序序列插入有序序列中,从后往前遍历有序序列,找到插入序列的位置。具体操作是:将数组中位置为i的数据arr[i]插入有序序列中,即需要从后往前遍历0~i-1位置上的数,分别比较,找到arr[i]这个数在有序序列中应该放置的位置。依次执行上述操作,直到数据全部有序为止。插入排序的平均时间复杂度为O(n^2),最优时间复杂度为O(n),最差的时间复杂度为O(n^2)。...
2018-04-10 11:12:11 243
原创 正则表达式
正则表达式可以用来操作字符串数据,是通过一些特定的符号来体现的。正则表达式的常见规则: [abc] a、b或c(简单类) [^abc] 任何字符,除了abc [a-zA-Z] a到z或者A到Z [a-d[m-p]] a到d或者m到p [a-z&&[def]] a到z与def之间的交集。 . 任何字符 \d 数字[0-9] \D 非数字[^0-9] \s 空白字符 \S 非空白字符 ...
2018-04-09 22:48:46 185
原创 排序——归并排序(merge sort)
归并排序(merge sort):归并是将两个或者两个以上的有序表合并成一个新的有序表。归并排序使用分而治之的方法进行排序:分解:将待排序的n个元素分解成两个子序列,每个序列包括n/2个元素。治理:对每个子序列分别排序。合并:将两个排序好的子序列合并,生成排序结果。归并排序的最优时间复杂度、最差时间复杂度和平均时间复杂度均为O(nlogn)。归并排序的空间复杂度为O(n)。归并排序多次进行上述操作...
2018-04-08 16:12:37 396
原创 TCP客户端与服务端之间的通信
客户端package cn.itcast.net.p4.tcp;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class ClientDemo2 { /** * * @param args *...
2018-04-05 21:24:10 728
原创 UDP客户端与服务端间通信的通信
发送端package cn.itcast.net.p2.udp;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import ja...
2018-04-05 21:20:29 229
原创 java的反射机制
java反射机制是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法。对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取信息以及动态调用对象的方法的功能成为java语言的反射机制。(动态获取类中的信息,就是java反射,也可以称为对类的解剖)想要对字节码文件进行解剖,就必须要有字节码文件对象。下面介绍三种方法获取字节码文件对象:使用Object类中的ge...
2018-04-05 20:56:22 118
转载 关于JVM面试所必须知道的内容
引自:https://www.cnblogs.com/wbyp/p/7753528.html在Java中主要有以下三种类加载器: 引导类加载器(bootstrap class loader) --用来加载java的核心库(String,Integer,List......)在jre/lib/rt.jar路径下的内容。使用c代码来实现的,并不继承自java.lang.ClassL...
2018-04-05 20:33:34 2637
原创 对象实例化的过程
一个对象实例化的过程(假设对象是Person):Person p = new Person();jvm会读取指定路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接父类的情况下)在堆内存中开辟空间,分配地址。并在对象空间中,对对象中的属性进行默认初始化。调用对应的构造函数进行初始化。在构造函数中,第一行会先调用父类中的构造函数进行初始化。父类初始化完毕后,再...
2018-04-05 11:50:09 699
原创 HashMap面试题
HashMap和HashTable 1、HashMap是线程不安全的,HashTable是线程安全的。 2、HashMap可以接受null作为键和值,而HashTable不能讲null作为键和值。 3、单线程下,HashTable比HashMap慢,效率低。HashMap和HashSet 1、HashMap是map集合,而HashSet是set集合。 2、HashMa...
2018-04-04 17:23:43 290
原创 TCP为什么请求连接时是三次握手,而终止连接时是四次握手?
TCP请求连接时进行三次握手:第一次握手:客户端给服务端发送SYN(同步信号)信号,请求连接。第二次握手:服务端接收到客户端的SYN信号后,给客户端发送SYN和ACK应答信号,确认连接。第三次握手:客户端收到服务端的应答信号后,给服务端发送ACK信号,确认连接,这样客户端与服务端建立连接。为什么不是两次或者四次握手? 如果两次握手,即客户端发送SYN请求连接信号,服务器接收信号后发送SYN+...
2018-04-04 10:15:42 289
原创 网络编程相关知识点
TCP/IP参考模型:7层协议,从下到上依次是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。在发送端,数据需要从上到下进行封装,每经过一层,都会在数据包的头文件增加一些信息,而在接收端,数据需要从下到上进行解包装,依次取出包头信息。IP地址(InetAddress):网络中设备的标识,本地回环地址127.0.0.1,主机名localhost。端口号:用于标识进程的逻辑地址,不同进程的...
2018-04-02 23:05:12 285
原创 函数的可变参数
函数的可变参数:即函数的参数类型已知,但是参数的个数是可变的。表现形式如下:public static int newAdd(int... arr){ int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return sum;}函数的可变参数用"..."表示...
2018-04-02 21:59:10 157
原创 Collections和Arrays工具类
Collections和Arrays都是集合框架中的工具类,方法都是静态的。Collections工具类中常用的方法 Collections.swap(list, i, j):交换集合list中位置i和位置j的元素位置。 Collections.sort(list):按照自然顺序给集合list排序。也可以自定义比较器对集合进行排序,如Collections.sort(list, new...
2018-04-02 21:51:09 441
原创 Map相关
Map:一次添加一对元素。存储的是键值对,且Map集合中必须保证键的唯一性。(Collection一次添加一个元素。)Map称为双列集合,Collection称为单列集合。Map常用的子类有:HashTable:内部是哈希表,是线程安全的,不允许null作为键和值。Properties是一种哈希表,用来存储键值对型的配置文件的信息。HashMap:内部是哈希表,是线程不安全的,允许null作为键和...
2018-04-02 17:06:41 193
原创 泛型(generic)
泛型:jdk1.5出现的安全机制,将运行时期的ClassCastException问题转到了编译时期。避免了强制转换的麻烦。泛型技术用于编译时期,确保了编译安全。适用范围:当操作的引用数据类型不确定的时候,就使用<>。使用时将要操作的引用数据类型传入即可。其实<>就是一个用于接收具体引用数据类型的参数范围。在程序中,只要用到了带有<>的类或者接口,就要明确传入的...
2018-04-01 23:07:04 109
原创 HashSet和TreeSet
Set中元素不可以重复,是无序的(这里无序是指存入元素的先后顺序与输出元素的先后顺序不一致)HashSet:内部的数据结构是哈希表,是线程不安全的。 HashSet中保证集合中元素是唯一的方法:通过对象的hashCode和equals方法来完成对象唯一性的判断。 如果对象的hashCode值不同,则不用判断equals方法,就直接存到HashSet中。 如果对象的hashCode...
2018-04-01 22:25:27 313
原创 Vector、ArrayList和LinkedList
List中元素有序,且是可以重复的。(有序是指元素存入的先后顺序与输出的先后顺序是一致的)Vector 内部是数组数据结构,是线程安全的。是最早出现的list接口(现在几乎不怎么使用)。Vector是百分百延长数组,即新数组的长度是原来数组长度的2倍。ArrayList 内部是数组结构,是线程不安全的。替代了Vector,遇到多线程情况,可以通过加锁来实现线程安全。ArrayList是...
2018-04-01 21:30:31 123
原创 迭代器(Iterator)遍历的两种方法(for和while)
while循环遍历Collection coll = new ArrayList();coll.add("abc1");coll.add("abc2");coll.add("abc3");coll.add("abc4");Iterator it = coll.iterator();while(it.hasNext()){ System.out.println(it.next()...
2018-04-01 20:47:48 21413 3
原创 java的自动装箱与拆箱
java的自动装箱与拆箱是针对基本数据类型而言的。自动装箱:基本数据类型转换为引用类型的数据时会进行自动装箱。自动拆箱:当引用类型的数据与基本类型数据进行运算时会进行自动拆箱。int num = 4;Integer i = 4;//i = new Integer(4);自动装箱i = i + 6;//i = new Integer(i.intValue() + 6);自动拆箱基本数据类型与基本...
2018-04-01 20:08:48 117
原创 java中十进制与非十进制之间的转换
十进制转换为其他进制 1、Integer.toBinaryString(int i):十进制转换为2进制。 Integer.toHexString(int i):十进制转换为16进制。 Integer.toOctalString(int i):十进制转换为8进制。 2、Integer.toString(int i, radix):i为十进制数,radix...
2018-04-01 19:42:44 865
原创 基本类型与字符串之间的转换
基本数据类型转换为字符串 1、基本数据类型值 + ""; int i = 1;String s = i + ""; 2、String的静态方法valueOf(基本类型数值)int i = 1;String s = String.valueOf(i); 字符串转换为基本数据类型 1,使用包装类中的静态方法xxx parseXxx("xxx类型的字符串");String s...
2018-04-01 19:07:25 309
原创 String
String的初始化 1、String s = "sncv"; "sncv"存储在字符串常量池中,如果常量池中存在,则不需要创建,直接用就好,如果常量池中不存在,就需要创建。 2、String s = new String("abc"); 在堆中创建两个对象,一个字符串对象,一个new对象。String中的equals方法 Object类中的equal...
2018-04-01 16:40:16 147
原创 等待唤醒机制
1、wait() 让线程处于冻结状态,释放执行权,释放执行资格。被wait的线程会被存储到线程池中。2、notify() 唤醒线程池中的任意一个线程。3、notifyAll() 唤醒线程池中的所有线程。上述这些方法都需要定义在同步中,且要明确是哪个锁上的线程。假设当前锁为lock,则上述方法的调用形式是lock.wait(),lock.notify(),lock.notifyAl...
2018-04-01 10:35:04 208
原创 同步代码块、同步函数和静态同步函数
同步代码块的锁可以是任意对象Object obj = new Object();synchronized(obj){ if(num > 0) { try{Thread.sleep(10);} catch(InterruptedException e){}; System.out.println(Thread.currentThread()....
2018-04-01 10:14:21 1570
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人