Java
文章平均质量分 77
晚起的男孩
曾经沧海,我将再起!
展开
-
关于java中的\和正则表达式中的\
根据实际的测试和理解,在java字符串中\本来就表示转义字符,它会试图将后面挨着它的任何字符转义,如果转义无指定含义则非法,不能通过编译,比如\.所以在和正则无关的字符串中要表示路径中的分隔符都得用\\所以要表示正则中特殊含义的\d,要用\先把\转义回来,再加上d,这样就是\\d,所以java的正则表达式中\基本都是成对出现的,因为它在java意义上的字符串中。这可能和php不同,因为原创 2016-04-25 17:18:37 · 1932 阅读 · 0 评论 -
[Java]多线程复习(更新未完)
知识点小结:(具体看例子)多线程:线程是程序中单独创建的控制单元,是并发执行的程序。外部顺序执行的程序叫做主线程。线程是多任务操作系统调用CPU来回切换的程序。注意:线程开启要用start方法,虚拟机调用底层向操作系统申请一个单独线程。如果你只执行run方法,那么并没有开启一个线程,仅仅是一个普通类的方法,那么是在主线程中顺序执行的。你开启start是虚原创 2016-06-19 18:02:57 · 1813 阅读 · 0 评论 -
[Java之余]在人群中间,在阳光之下
我的第一篇生活记录:没日没夜的三个多月,身体有些拖垮了。身体和精神的疲惫无力之中我想到的是过去漫长的七年间的每个病痛和绝望折磨的日日夜夜,想到的是余则成这样在黑暗中有信仰的人物。我的人生注定与别人不同,高中休学,大学休学,退学,然后就这么在孤独闭塞的环境下呆了整整七年。现在我仍然在寻求光明。我现在就在想,我为什么要刻意隐瞒自己的病痛,为什么不肯定自己呢?过去几年中看淡人生,醉心于文学和恬淡原创 2016-07-06 20:24:09 · 851 阅读 · 1 评论 -
[Java]邮件发送
1.原理:邮件服务器和相应协议2.安装一台邮件服务器:里面自然拥有两个服务器,用于邮件发送的SMTP服务器和用于邮件接收的POP3服务器。在计算机上是两个程序,分别对应25和110端口。配置邮件服务器的网络范围(这里局域网),邮箱域名(可以有多个),然后创建两个实验账号。3.使用Windows自带的telnet程序可以连接任何一台主机,访问其端口,这样可以遵循邮件发送和原创 2016-06-21 11:50:10 · 906 阅读 · 0 评论 -
[Java]struts,spring,svn杂记
------struts2整合spring-----------------------------------------------------struts2过滤器负责在Tomcat启动时运行,加载和创建静态注入项(也可以在配置文件中加载我们写的类的),管理struts2容器。负责加载Action,接收特点结尾的请求,为每个请求创建对应Action对象,执行其相应方法...原创 2016-08-01 10:47:02 · 1399 阅读 · 0 评论 -
自动登录:Filter,Session,Cookie综合例子
初始登录Servlet:package cn.xbai.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import原创 2016-11-01 21:54:01 · 5282 阅读 · 0 评论 -
面试专栏:算法与数据结构,虚拟机,Java基础,JavaWeb
1.二叉树知识点复习:二叉树是一棵树,每个节点不能有多于两个的儿子。二叉查找树的平均深度为O(logN).节点实现:class BinaryNode{ Object element; BinaryNode left; BinaryNode right;}应用:表达式树,如图:中序遍历:原创 2016-11-06 11:49:41 · 905 阅读 · 2 评论 -
concurrent包与线程池
1.继承体系starUML运行异常,和c盘存储或目录层次有关以下文字摘自Executor接口的Java API文档:执行已提交的 Runnable 任务的对象。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。通常使用Executor 而不是显式地创建线程。例如,可能会使用以下方法,而不是为一组任务中的每个任务调用 new原创 2016-11-11 10:37:23 · 394 阅读 · 0 评论 -
Request,Response编码解码原理,文件上传下载和底层IO
最近发现自己基础很差,自以为学的不错的东西,其实缺乏练习和复习,基础十分不扎实。恶补无从下手,只得从以前的具体例子出发,在例子中发现能力存在的问题,结合实例复习和掌握遗忘的和本来就不扎实没学透的知识:源程序:表单显示页面的Servlet和JSP:package cn.xbai.servlet;import java.io.IOException;import javax.ser原创 2016-10-25 23:41:00 · 2523 阅读 · 0 评论 -
过滤器原理和例子
编写处理request,response字符集的过滤器:1.HttpServletRequestGET方式提交的请求无法通过设置request字符集解决编码问题,可以理解为是getParameter的问题,所以我们写一个HttpServletRequest的包装类,拦截HttpServletRequest并包装它,传递包装类给访问目标:源码:package cn.xbai.原创 2016-11-01 11:22:55 · 1692 阅读 · 0 评论 -
多线程等待唤醒机制:从wait()和sleep()的差别说起
1.wait():释放资源,释放锁sleep():释放资源,不释放锁wait():Object的方法,用在同步当中,是同步锁的方法,以锁控制线程sleep():线程类Thread本身的静态方法例子:class Person{ String name; String gender; boolean flag=false;//标记,默认不输出}cla原创 2016-11-13 11:26:57 · 8770 阅读 · 0 评论 -
安装Oracle数据库
完全卸载oracle11g步骤1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、 开始->程序->oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。5、 运行re原创 2017-08-27 15:57:27 · 294 阅读 · 0 评论 -
RedHat6.5安装activemq和apache-tomcat
1.利用vmware tools拖tar.gz文件入redhat的/home/soft目录(普通用户也可访问--目录可读可执行权限,如果需要安装到/usr,另查,怎样通过普通用户解压安装,拷贝和修改配置,启动--usr目录为root所有,普通用户有rx权限,也就是说要root建立软件目录拷贝文件,再把整个软件目录所有者变更为普通用户,配置文件所在目录和配置文件所有者大致也要这样处理)2原创 2017-09-03 08:41:54 · 1064 阅读 · 0 评论 -
架构师基础
面试经验谈架构2012-11-24 23:43:27标签:面试 经验谈版权声明:原创作品,谢绝转载!否则将追究法律责任。 ##################################################### #本文内容来自《老男孩linux运维实战培训》学生—郑东旭 #如有转载,请务必保留本文链接及本版权信息。 #欢迎广大运转载 2017-10-08 14:08:29 · 687 阅读 · 0 评论 -
Spring入门学习
一.简介二.加载和启动文件和资源配置类和原理三.配置文件配置IOC,原理DI,几种配置方式四.注解配置五.框架整合应用SpringMVC1)启动依赖及原理2)控制器的几种配置方式3)数据接收和返回格式配置与转换4)视图层MyBatisSpringJDBC事务及原理定时任务六.AOP七.其他技术原创 2017-10-28 09:21:35 · 275 阅读 · 0 评论 -
编程经验总结
1.先结束和清空一切再开始一切免得累加和影响。2.用布尔变量控制和随时改变而不是不可靠的。3.尽量利用已有的,不冲突,改动小。4.在最外面声明函数和变量。5.调试流程观察变量迅速理解和定位想不到的错误。6.运行中的程序可以改变另外运行中程序的行为,比如改变事件监听。就是让另一个程序不再执行任何响应函数。实际是置空其代码调用的变量函数。原创 2017-11-08 18:45:58 · 472 阅读 · 0 评论 -
[Java]面试题、基础细节与易错点(逐步积累、扎实、查阅)
1.重载题目:12. 以下对重载描述错误的是(B)A) 方法重载只能发生在一个类的内部B) 构造方法不能重载C) 重载要求方法名相同,参数列表不同D) 方法的返回值类型不是区分方法重载的条件相关知识:区分重载的方法是每个重载的方法都必须有一个独一无二的参数类型列表,甚至参数顺序的不同也足以区分两个方法。只要编译器可以根据语境明确判断出语义,就允许某种重载。原创 2016-06-18 12:20:01 · 1237 阅读 · 1 评论 -
[Java]排序算法专题(更新未完)
直接上代码:思想都在注释里,领悟都在代码中。public class Sort{ //插入排序 //思想:不是假定,是真的i前面部分变成有序,通过一步步插入方式排好的序,循环的是要找位置插入的剩余元素!! public static int[] insertionSort(int[] A,int n){ int i,j,temp; for(i=1;i<n;i++){ t原创 2016-07-14 11:26:38 · 398 阅读 · 0 评论 -
[JavaWeb]Servlet,Request,Response知识点补充
1.Servlet底层原理总结底层通过浏览器(程序)访问服务器(程序),实际是通过(操作)系统底层TCP/IP层的(主机)地址和端口 //建立计算机底层间的连接,实现程序间访问,响应。Servlet是服务器程序在收到第一次访问时(Socket级) //运行class文件(并加载配置文件数据)在内存中创建(new)和调用的,同时创建(new)request,r原创 2016-06-04 11:32:38 · 3925 阅读 · 0 评论 -
[Java]命令行模拟TCP客户端与服务端的简单小程序遇到的问题(基础不牢!扎实和亲手实践比什么都重要!)
简单得不能再简单的需求:简单模拟TCP客户端与服务端的一次连接和通信,客户端发出一个消息,服务端回馈一个消息自己第一次编写的代码:Client:class TcpClient1 { public static void main(String[] args) throws Exception { Socket s=new Socket("127.0.0.1",1001原创 2016-05-07 10:55:52 · 2244 阅读 · 0 评论 -
[Java]集合框架知识点总结(逐步更新)
1.迭代器迭代器是一个接口,是一种取出集合中元素的方式。每个集合的内部以内部类的方式实现了此接口,用于取出集合的元素。这些内部类都符合迭代器接口。集合通过一个iterator方法提供这个取出元素的方式。不同的集合因为底层数据结构不同,而实现取出元素的方式不同。但都符合此接口提供的共性方法用于操纵集合元素。常见的迭代取出方式:public void test() { // T原创 2016-04-26 22:15:24 · 1209 阅读 · 0 评论 -
[Java]常见算法问题(持续学习,更新)
1.最大子序列和问题的三种算法:O(N^3),O(N^2),O(NlogN)算法1:public static int Method1(int[] arr)//O(N^3) { int max=0; for(int i=0;i<arr.length;i++){//子列起始坐标 for(int j=i;j<arr.length;j++){//子列终坐标 in原创 2016-05-08 20:25:44 · 3329 阅读 · 0 评论 -
[JAVA]关于classpath的补充
classpath是java虚拟机能够自动识别的变量名称,默认在不设置的状态下,到命令行执行所在目录寻找Class文件:例子C:\Documents and Settings\Administrator>d:D:\>cd javaD:\java>javac WebServer.javaD:\java>java WebServer在D盘目录下执行成功。把生成好原创 2016-05-03 11:35:01 · 641 阅读 · 0 评论 -
[Java]常见数据结构的实现(持续更新)
1.ArrayList的自定义实现代码:package cn.itcast.alg;public class MyArrayList implements Iterable { //默认容量 private static final int DEFAULT_CAPACITY=10; private int theSize; private AnyType[] theIt原创 2016-05-19 21:16:02 · 1668 阅读 · 0 评论 -
[Java]二叉树简要解析(持续学习和整理)
1.TreeSet底层数据结构为二叉树,也叫红黑树,其排序原理为以头一个插入的元素为根节点,每次从根节点起,compareTo方法比较结果为-1的放左边,为1的放右边,为0的为重复元素,不插入。结构如图:发现整体来看,越靠左的枝杈元素“值”越小,左侧末端最小,越靠右的枝杈元素越大,右末端最大。但包含左右两叉的子树整体都比根节点小。从提高效率的角度,如果每次都从始祖节点查找,则效率低下,原创 2016-05-03 19:24:29 · 1945 阅读 · 0 评论 -
[Java]MVC三层架构原理及实现案例
1.模型1)层与层之间针对接口进行调用,某一层的具体实现变了,其他层不用改一行代码。2)使用包组织不同层的程序。3)jsp不该让人直接访问,数据通过Servlet转给jsp,jsp只负责显示数据,直接访问jsp的结果是看不到任何数据,所以jsp需要被保护起来,放在用户禁止访问的目录:/WEB-INF/jsp4)jsp不应出现一行脚本代码,应该用EL表达式和jstl2原创 2016-05-29 13:31:14 · 4382 阅读 · 0 评论 -
[Java]Servlet编程(持续更新)
1.Servlet属于JavaEE的部分,所以JavaSE的文档是没有Servlet API的。JavaEE API又包括很多其他技术,找一个专门的Servlet API文档。2.Servlet程序运行在服务器端,由服务器调用,所以先在服务器端建立一个Web应用,根据Web应用的组织结构,把java程序放在webapps\workday10\WEB-INF\classes目录中。3.导包,原创 2016-05-05 10:05:32 · 1151 阅读 · 0 评论 -
[Java]一个TCP文本上传相关的异常处理和偶然引出的中文编码问题
源程序:Client:class TcpClient4{ public static void main(String[] args) { Socket s=null;//要在块外定义,不然catch中无法找到!------->并初始化,否则finally中判断时提示你可能尚未初始化!! try { s=new Socket("127.0.0.1",10013)原创 2016-05-07 19:09:38 · 2491 阅读 · 0 评论 -
[Java]关于中文编码问题
1.把一种文字按照某种码表转换成二进制比特序列的过程叫做编码,把一堆二进制比特码按照某种码表转换成某种文字叫做解码。举中文为例:用一种码表编码的文字,需要用同一种码表进行解码,才能得到同样的文字,如果把这一堆二进制比特按另一种码表来解,就会出现乱码。2.字符流和字节流:无论什么文字,存储的文件都是比特序列。只有在高级语言文本级别上的字符串才是文字。字符流底层都是用字节流进行文件读写,但不同的是原创 2016-05-01 19:11:51 · 1284 阅读 · 0 评论 -
[WEB]服务器访问原理与Tomcat服务器安装配置
1.域名与本机HOST文件:本地hosts文件(C:\WINDOWS\system32\drivers\etc\hosts)管理域名与ip地址对应关系,可以手动修改,把sina.com映射成本机ip都可以,也可以用于屏蔽网站和阻止自动访站软件。我电脑上的localhost域名默认对应于ip地址(应该是一个局域网动态或虚拟ip):127.0.0.12.ip与端口号:服务端的服务器软件或程序监听某原创 2016-05-03 10:22:46 · 646 阅读 · 0 评论 -
[Java]泛型总结
1.泛型集合排序自然排序:class GenericDemo { public static void main(String[] args) { TreeSet ts=new TreeSet(); ts.add("fsldfsl"); ts.add("Aslf"); ts.add("A"); ts.add("a"); ts.add("1wel");原创 2016-05-19 22:48:43 · 563 阅读 · 0 评论 -
JAXP,sax与dom4j解析xml文档及XPath在文档内容定位中的应用(持续更新,初学者的野路子、参考和想当然,不断学习和专业化)
一、需求:一个基本的学生成绩管理系统,用xml文档模拟数据库,要求能够向数据库实时增删改查学生成绩数据二、需求分析:1.需要分层定义和实现,在用户层由用户输入查询信息,在底层做好数据接收,异常抛出、处理和程序测试,保证在UI层不会出现未捕获和处理的异常,并能正确处理非法输入和操作信息不存在的情况,给用户一个良好的用户体验。2.定义学生类封装id,name,sco原创 2016-04-29 13:21:38 · 2425 阅读 · 0 评论 -
[Java]阶段性知识点、技术总结
1.自动装箱、拆箱:l自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。l自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。l典型应用:List list = new ArrayList();list.add(1);int j = (Integer)list.get(0);举例:public static void main(原创 2016-05-21 07:36:22 · 2008 阅读 · 2 评论 -
[Java]《Java编程思想》知识点总结(坚持逐步更新)
第1章1.抽象与对象:编程语言提供抽象机制,解决问题的复杂性取决于抽象的类型和质量。“类型”指“所抽象的是什么”。应只针对待解决的问题建模。面向对象方式提供表示问题空间中的元素的工具,将问题空间中的元素及其在解空间中的表示称为”对象“。程序可通过添加新类型的对象使自身适用于某个特定问题,当你阅读描述解决方案的代码时,也是在阅读问题的表述。这是一种更灵活和强有力的语言抽象。2.面向对原创 2016-06-09 07:25:55 · 6247 阅读 · 0 评论 -
[Servlet编程]Request,Response使用与码表原理
在servlet中用OutputStream输出中文的问题:1.使用OutputStream对象输出中文,需要先用String对象的getBytes方法通过查码表(默认gb2312)把中文字符串转换成相应字节发给浏览器,浏览器是个文本解析工具,按照其设置的默认码表(gb2312)把字节解码成中文.如果二者码表不一致,就会造成乱码。2.浏览器访问Servlet程序,服务器调用其service原创 2016-05-12 14:07:17 · 1652 阅读 · 0 评论 -
同步异步、阻塞与非阻塞
阻塞:主要针对线程来说,跟踪源码最终会发现线程wait在某个方法上,等待被唤醒。在消息通信中,表现为来了数据后解除阻塞,比如阻塞队列模型中的notFull.await()/notEmpty.signal()和notEmpty.await()/notFull.signal(),以及Socket阻塞通信模型中的阻塞I/O:read/write方法要await数据到来/数据写入完毕才可解除阻塞,继续线程原创 2018-01-07 11:51:02 · 455 阅读 · 0 评论