02 2017 档案

摘要:堆内存溢出 要想保证堆内存溢出,那么只要不断创建对象并且对象不被回收,那么对象数量到达最大堆限制后就会出现内存溢出的异常了。 虚拟机参数:-Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError 结果 栈内存溢出 java虚拟机规范中描述如果线程请求的栈深度太深 阅读全文
posted @ 2017-02-28 15:37 TP000 阅读(211) 评论(0) 推荐(0)
摘要:jvm常用的参数: 1.-Xms20M 设置堆容量的最小值为20M,必须以M为单位。 2.-Xmx20M 设置堆容量的最大值为20M,必须以M为单位。把-Xms和-Xmx的值设为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般要10G、20G甚至更高。 3.-verbose:gc 输出虚拟机中 阅读全文
posted @ 2017-02-27 18:03 TP000 阅读(757) 评论(0) 推荐(0)
摘要:RandomAccessFile RandomAccessFile是java语言中最丰富的文件访问类。RandomAccessFile类支持随机访问方式,可以跳转到文件的任意位置读写数据。如果不想把文件从头读到尾,而是希望像访问数据库一样访问一个文本文件,使用RandomAccessFile类最好了 阅读全文
posted @ 2017-02-22 18:26 TP000 阅读(757) 评论(0) 推荐(0)
摘要:File类 file类是io包中唯一代表磁盘文件本身的对象,File类定义了一些与平台无关的方法来操作文件。File是没有无参构造方法的,最常用的是使用文件路径来生成File对象(分隔符可以使用"/"和"\",但是使用\时要写出"\\",这是由于转义的问题)。 结果 28,30行,如果删除的是一个文 阅读全文
posted @ 2017-02-22 17:57 TP000 阅读(339) 评论(0) 推荐(0)
摘要:性能优化 myql数据库优化的原则: 1.减少系统的瓶颈。 2.减少资源的占用。 3.增加系统的反应速度。 优化查询 1.索引对查询的影响 比如有一个表student表,有id、name、sex、no,4个字段,里面有20条记录,如果没有索引时,查询no=20的学生。 sql语句是SELECT * 阅读全文
posted @ 2017-02-22 17:27 TP000 阅读(208) 评论(0) 推荐(0)
摘要:mysql的核心就是存储引擎 查看存储引擎 使用:show ENGINES显示 查看数据库默认的存储引擎,通过:SHOW VARIABLES LIKE 'storage_engine' 结果为: mysql,不需要整个服务器使用同一种存储引擎,可以对每个表使用不同的引擎。support列表示某种引擎 阅读全文
posted @ 2017-02-22 11:43 TP000 阅读(178) 评论(0) 推荐(0)
摘要:数学函数 (1)ABS(x) 返回x的绝对值 (2)PI() 返回圆周率π,默认显示6位小数 (3)SQRT(x) 返回非负数的x的二次方根 (4)MOD(x,y) 返回x被y除后的余数 (5)CEIL(x)、CEILING(x) 返回不小于x的最小整数 (6)FLOOR(x) 返回不大于x的最大整 阅读全文
posted @ 2017-02-22 10:55 TP000 阅读(227) 评论(0) 推荐(0)
摘要:为什么使用session和cookie http是无状态协议,意味着如果后续处理需要前面的信息,则必须重传,这样那么每次传送的数据量会增大。为了解决大量重复信息内容的问题,cookie和session就登场了,它们可以保存用户的状态。 cookie cookie通过客户端保持状态的解决方案。从定义上 阅读全文
posted @ 2017-02-21 18:34 TP000 阅读(167) 评论(0) 推荐(0)
摘要:HTTPS https是http的安全版本,由两个部分组成:HTTP+TLS/SSL,即在http下加入TLS/SSL层,HTTPS的安全基础就是TLS/SSL。客户端和服务端的信息通信会通过TLS/SSL进行加密,所以传输的数据都是加密后的数据。TLS的前身是SSL。 http的缺陷 http本身 阅读全文
posted @ 2017-02-21 16:50 TP000 阅读(846) 评论(0) 推荐(0)
摘要:welcome-file-list 这个标签是用来配置首页: 当用户访问http://ip:port/project的时候,会根据配置的页面列表,从项目的根目录开始找页面。按顺序查找jsp,如果都找不到那么就是404. error-page 表示当http返回指定状态码时,容器把此次请求发送到配置的 阅读全文
posted @ 2017-02-21 14:51 TP000 阅读(158) 评论(0) 推荐(0)
摘要:DNS域名解析过程 过程如下,前两个步骤是本机完成,后面的8个步骤涉及真正的域名解析服务器: 1.浏览器会检查缓存中有没有这个域名对应的解析过的ip,如果有,那么解析过程结束。浏览器缓存域名是有限制的,浏览器缓存大小和时间都有限制。通常情况是几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性 阅读全文
posted @ 2017-02-21 11:52 TP000 阅读(275) 评论(0) 推荐(0)
摘要:原理上区别 http定义了与服务器交互的不同方法,最基本有4种,get,post,put,delete。url是统一资源定位器。http的这四个方法对应查,该,增,删。 1.根据http规范,get用于信息的获取,应该是安全和幂等的。 (1)所谓安全意味着该操作是用于获取信息而不是修改信息。 (2) 阅读全文
posted @ 2017-02-21 10:35 TP000 阅读(98) 评论(0) 推荐(0)
摘要:http http叫做超文本传输协议,是应用最广泛的一种网络协议。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得 阅读全文
posted @ 2017-02-20 18:33 TP000 阅读(291) 评论(0) 推荐(0)
摘要:{ System.out.println("request.getAuthType():" + request.getAuthType()); // 获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是null System.out.println("requ 阅读全文
posted @ 2017-02-20 18:09 TP000 阅读(162) 评论(0) 推荐(0)
摘要:socket socket是网络上运行的两个程序间双向通讯的一端,既可以接收请求也可以发送请求,利用它可以方便的编写网络上数据传递。 socket连接过程: 1.服务器监听 服务器socket并不定位具体的客户端socket,而是处于等待链接的状态,实时监控网络状态。 2.客户端请求 客户端sock 阅读全文
posted @ 2017-02-20 17:56 TP000 阅读(235) 评论(0) 推荐(0)
摘要:1.尽量用final修饰类和方法 final修饰的类不可以继承,final修饰的方法不可以被重写。指定了一个类是final的,那么它里面所有方法都是final的(不可以继承也就不存在重写)。java编译器会寻找机会内联所有final方法,内联可以提升效率。 2.尽量重用对象 对于String对象的使 阅读全文
posted @ 2017-02-17 18:40 TP000 阅读(658) 评论(0) 推荐(0)
摘要:权限解析 java有四种访问权限,private default protected public。 private:私有的,只有在自己的类中可以访问。 default:就是不加任何修饰符,允许在自己类中访问,也运行同包中访问。 protected:允许在自己类中访问,同包中访问,子类访问。 pub 阅读全文
posted @ 2017-02-16 17:02 TP000 阅读(206) 评论(0) 推荐(0)
摘要:重写需要满足几个原则 两同两小一大: 1.子类重写的方法名称和父类的相同。 2.子类重写的方法参数列表和父类的相同。 3.子类重写的方法中的返回类型小于等于父类方法中的。 4.子类重写的方法中的异常小于等于父类方法中的。 5.子类重写的方法的访问权限大于等于父类方法的。 第一二点不用证明(因为如果方 阅读全文
posted @ 2017-02-16 15:45 TP000 阅读(157) 评论(0) 推荐(0)
摘要:为什么要克隆 person1:name=aperson2:name=aperson2中name修改为bperson1:name=b 这就是没有克隆出现的问题,因为只是引用的赋值,它们指向同一对象,如果一个修改另一个也会影响。所以我们需要克隆一个对象,让它们指向不同的对象。 Object的clone( 阅读全文
posted @ 2017-02-15 19:47 TP000 阅读(263) 评论(0) 推荐(0)
摘要:连接mysql数据库,并且通过select语句获得结果。 两种方式加载驱动 1、Class.forName("oracle.jdbc.driver.OracleDriver"); 2、new oracle.jdbc.driver.OracleDriver(); 两种方法都可以。这个驱动自动向driv 阅读全文
posted @ 2017-02-15 17:59 TP000 阅读(128) 评论(0) 推荐(0)
摘要:Comparable Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 Comparable接口是内比较器,也就是自己参与比 阅读全文
posted @ 2017-02-15 16:26 TP000 阅读(198) 评论(0) 推荐(0)
摘要:为什么要自己定义类加载器 为什么我们要自定义类加载器?因为虽然Java中给用户提供了很多类加载器,但是和实际使用比起来,功能还是匮乏。举一个例子来说吧,主流的Java Web服务器,比如Tomcat,都实现了自定义的类加载器(一般都不止一个)。因为一个功能健全的Web服务器,要解决如下几个问题: 1 阅读全文
posted @ 2017-02-14 18:31 TP000 阅读(279) 评论(0) 推荐(0)
摘要:结果是 阅读全文
posted @ 2017-02-14 17:43 TP000 阅读(150) 评论(0) 推荐(0)
摘要:类使用的7个阶段 类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initiallization)、使用(Using)和卸载(Unloading)这7个阶 阅读全文
posted @ 2017-02-14 17:23 TP000 阅读(175) 评论(0) 推荐(0)
摘要:HashCode 然后讲下什么是HashCode,总结几个关键点: 1、HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定对象的存储地址的 2、如果两个对象equals相等,那么这两个对象的HashCode一定也相同,反过来不成立,只能说明两个对象在同一位置。 阅读全文
posted @ 2017-02-13 22:51 TP000 阅读(150) 评论(0) 推荐(0)
摘要:JDK和JRE 1、JDK(Java Development Kit),是用于支持Java程序开发的最小环境,基本上Java程序设计语言、Java虚拟机、Java API类库这三部分组成了JDK 2、JRE(Java Runtime Enviroment),是支持Java程序运行的标准环境,Java 阅读全文
posted @ 2017-02-13 16:26 TP000 阅读(204) 评论(0) 推荐(0)
摘要:String和StringBuffer有什么区别? 1、String对象是不可变的,如果一旦修改了String对象的值,那么会隐性重新创建一个新的String对象并释放原来的对象。 而StringBuffer类是可修改的,如果想要在原字符串上添加,只要使用append方法就可以了,非常方便。 Str 阅读全文
posted @ 2017-02-13 15:16 TP000 阅读(160) 评论(0) 推荐(0)
摘要:jni:java的运行速度比c++慢,java无法直接访问操作系统底层,所以java提供jni来实现对底层访问。jni,java native interface。jni运行java使用其他语言编写的代码。 Native:被Native关键字声明的方法说明该方法不是以Java语言实现的,而是以本地语 阅读全文
posted @ 2017-02-13 14:57 TP000 阅读(230) 评论(0) 推荐(0)
摘要:什么是java的序列化和反序列化 java序列化就是把java对象转换为字节序列的过程。对于transient和static修饰的属性不会被序列化。原因:transient的作用就是这样,static是因为序列化作用的是对象,static修饰后是属于类的,所以没用。 java反序列化就是把字节序列转 阅读全文
posted @ 2017-02-10 18:36 TP000 阅读(222) 评论(0) 推荐(0)
摘要:java的反射机制 在运行过程中动态的获取信息和调用对象方法的功能称为java的反射机制。 通过反射可以获得类的属性,方法,父类,接口,包相关的信息。因为类在加载的时候,会在内存中生成一个代表这个.class文件的java.lang.Class对象,.class文件包含类的所有信息。 实例 clas 阅读全文
posted @ 2017-02-10 15:51 TP000 阅读(133) 评论(0) 推荐(0)
摘要:接口的优点和缺点 优点:解耦,增加代码的可扩展性。 缺点:子类实现接口,如果接口需要新增新方法,那么所有子类将不能编译通过,而需要重写新增的方法。 接口的访问权限 接口中的方法:只能是public abstract,如果不写public也是public的,不是default的。 接口中的属性:修饰只 阅读全文
posted @ 2017-02-09 17:56 TP000 阅读(171) 评论(0) 推荐(0)
摘要:运行的异常和一般异常的区别 异常分为两类:runtime exception(运行时异常)和checked exception(一般异常)。 一般的异常比如ioException,sqlException,编译器会强制我们写try catch。 而runtimeException是虚拟机掌管的。如果 阅读全文
posted @ 2017-02-09 16:37 TP000 阅读(167) 评论(0) 推荐(0)
摘要:枚举类 public enum Day { MON("星期一"), TUE("星期二"), WED("星期三"), THU("星期四"), FRI("星期五"), SAT("星期六"), SUN("星期七"); private String label; private Day(String lab 阅读全文
posted @ 2017-02-08 22:41 TP000 阅读(153) 评论(0) 推荐(0)
摘要:static的用法 1.修饰属性 2.修饰方法 3.修饰代码块 4.修饰内部类 static修饰的是静态资源,是类的各个实例共享的。 静态资源是类初始化的时候就加载的,而非静态资源是在new的时候才加载的。类的初始化是要早于类的new,Class.forName(“”)是加载类,加载静态资源。 所以 阅读全文
posted @ 2017-02-08 18:31 TP000 阅读(112) 评论(0) 推荐(0)
摘要:final的作用 1.final修饰的类不可以被继承。(最常见的就是String类) 2.final修饰的方法不可以被重写。 3.final修改的变量不可以被修改。(如果该变量是引用,那么要求的是引用不可以修改,可以修改引用里面的内容。也就是说必须还是指向原来指向的对象,但是对象里面的内容可以修改) 阅读全文
posted @ 2017-02-08 17:34 TP000 阅读(85) 评论(0) 推荐(0)
摘要:面向对象编程有4大特征:抽象,继承,封装,多态。 什么是多态 多态又叫做动态绑定或者迟绑定,是运行期间根据所引用的具体对象类型来调用相应的方法。 多态的条件 1.要有继承 2.子类重写父类的方法。 3.父类引用指向子类对象。 转型 1.向上转型:比如Dog继承Animal,Animal a = ne 阅读全文
posted @ 2017-02-08 17:24 TP000 阅读(164) 评论(0) 推荐(0)