JAVA基础
文章平均质量分 55
Kelanss
宁静致远 清水无香
展开
-
java学习零散基础01
接口里面的一般是用final 修饰的,private的。用来定义一个接口的关键字interface用来实现一个接口的关键字接口只是声明一组操作规范. 任何类都可以实现它Java语言约定一个类可实现多个接口相当于一个类可以拥有多个父类接口的用处就是让类通过实现它,来执行一定的功能。实现接口 , 类声明中用implements接口里面要声明方法,只有声明了的方法在用接口调用时才可以用,这原创 2016-03-17 12:57:00 · 530 阅读 · 0 评论 -
Spring中AOP实现的两种方式之JDK和cglib的动态代理
AOP的实现原理: 都是基于代理模式,都是生成一个大代理对象 静态AOP: AspectJ实现的AOP, 将切面代码直接编译到Java类文件中 --- 实现: JDK提供的动态代理技术 动态AOP: 将切面代码进行动态织入实现的AOP --- Spring的AOP为动态AOP --- 实现: CGLIB(动态字节码增强技术)cglib创建的动态代理对象性能比JDK创建性能高很多,但是cgl原创 2017-09-07 17:36:56 · 1078 阅读 · 0 评论 -
lo4j输出日志到自己指定的文件配置
1、如下是log4j.properties 文件的配置方式:log4j.rootLogger=INFO, L, stdoutlog4j有一个 rootLogger 和普通 Logger 的概念,默认情况下我们只需要一个 rootLogger,就是所有的日志只会输出到这一个日志文件中。 log4j.logger.com.dili.toll.server.gw.impl.Car原创 2017-10-16 11:11:57 · 1603 阅读 · 0 评论 -
GET 和 POST区别
GET:1、根据HTTP规范,GET用于获取信息,而且应该是安全冥等的。2、get请求参数是跟在url上的以?分割URL,&连接多个参数参数如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。3、首先是"GET方式提交原创 2017-06-20 15:17:45 · 581 阅读 · 0 评论 -
连接池 和 线程池
区别:连接池:1、连接池是面向数据库连接的2、连接池是为了优化数据库连接资源3、连接池有点类似在客户端做优化数据库连接是一项有限的昂贵资源,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态地对池中的连原创 2017-06-20 15:22:45 · 2858 阅读 · 0 评论 -
项目由java7 升级为Java8注意事项
1、修改project structure 里面的Project , Modules , SDKs jdk的版本2、修改Java Compiler 里面java的jdk版本3、tomcat 里面jre 的版本4、修改系统配置的环境变量为指定的版本(注意别忘记了)5、还要注意安装的jdk版本是否是系统环境可用的jdk6、注意,在这些都修改完成了的情况下,注意如果项目以前用的是sp原创 2017-02-27 10:25:32 · 8454 阅读 · 0 评论 -
初学java环境及eclipse基础设置
Java开发环境的设置:1、安装java的运行环境 下载Jdk ,在系统环境变量里面配置JAVA_PATH 的路径即为Jdk的安装目录D:\jdk1.7.0_512、在 系统变量 ---> PATH变量 --> 编辑---->起始位置添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 或 %JAVA_HOME%\bin;3、在 系统变量原创 2016-03-17 12:56:58 · 502 阅读 · 0 评论 -
在项目的classPath 下配置log4j.xml ,为什么没有读取log4j的配置文件它会自己找到
因为在我们引的jar包 log4j-1.2.16.jar里面,在启动时又一个类会自动去找默认的配置文件,这些是在LogManage.java里面的。默认会去classPath下查找log4j的配置文件。java虚拟机加载log4j的类(LogManager.class)后,执行静态代码块,这个类中的静态代码块,会加载 log4j的配置文件,依次加载log4j.xml,log4j.原创 2016-07-15 10:44:50 · 2997 阅读 · 0 评论 -
XStream 解析xml 转 javaBean 问题
xstream解析后获取不到属性值的问题解决办法2种:方法一:属性值在类中指定 xstream.useAttributeFor(ChildNav.class, "name"); xstream.useAttributeFor(ChildNav.class, "url");方法二,通过方法处理: /** *@author kelan *原创 2016-04-06 17:53:45 · 2265 阅读 · 0 评论 -
Interger声明的在-128 ~ 127之间值比较为true
Integer f1=100,f2=100,f3=189,f4=189; System.out.println(f1==f2); System.out.println(f3==f4);输出 true false源码:private static class IntegerCache { static fin原创 2016-03-25 11:02:20 · 953 阅读 · 0 评论 -
单例模式Signleton的实现及破坏
本篇博客转载自: 点击打开链接 http://www.cnblogs.com/fernandolee24/p/5366720.html一、单例的实现Singleton从表面上看是希望并限制该类的实例只能有一个,(比如Runtime类),其构造方式通常是一个private构造函数、static的该类实例、以及返回该实例的getInstance方法。1、饿汉式(Eager Sign转载 2016-04-13 11:28:02 · 1541 阅读 · 0 评论 -
java中两种随机数的产生方式
UUIDUUID.randomUUID().toString() //用来产生一个随机数,重复可能性很小所以用来生成数据库的主键id非常不错。生成的字符串长度为36,UUID由以下几部分的组合: (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。 (2原创 2016-04-07 14:54:43 · 2331 阅读 · 0 评论 -
ThreadLocal
JDK 1.2的版本中就提供了java.lang.ThreadLocal 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表达的意思。线程所产生的序号虽然都共享同一原创 2016-03-23 16:36:35 · 486 阅读 · 0 评论 -
线程的创建和运行
C语言可以访问内存地址,Java里不可以访问内存地址JAVA里面只支持单继承线程是一个程序内部的顺序控制流线程和进程的区别:进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。对一个应用程序可以同时启动多个进程。例如每次执行JDK的java.exe程序,就启动了一个独立的Java虚拟机进程,该进程的任务是解析并执行Java程序代码线程是指进程中的一个执行流程,有时也称为执行情景。一个进原创 2016-03-17 12:57:12 · 810 阅读 · 0 评论 -
文件快速上传和下载原理
Remote端(服务器端)数据的处理没必要去实现这个算法。直接调用库就可以了。chunk一块一块的数据块1. 将Remote端(服务器端)的数据按照Chunck进行切分2. 计算每一个chunk的弱校验和(Adler-32算法)与强校验和(MD5算法)3. 保存进Map中,key为弱校验ID,value为chunk链表 Map>Local 端处理(本地端)1. 读取一个Chunck 判断数据原创 2016-03-17 12:57:09 · 1571 阅读 · 0 评论 -
java学习之异常
异常什么类型的错误可以导致异常呢?严重的硬件错误,如内存中某些芯片故障或者硬盘崩溃。程序需要使用系统中当前不可用的I/O设备试图用零去除试图通过超过边界的下标访问数组的元素整数溢出浮点数溢出试图打开不存在的文件以使用试图打破安全性,比如试图修改只读文件 try { // 接受监视的程序块,在此区域可能产生异常 //要测试的代码 } ca原创 2016-03-17 12:57:07 · 502 阅读 · 0 评论 -
Rsync算法
Rsync算法A = 1+D1+D2+.......+DnB = (1+D1+D2)+(1+D1+D2+D3)+......+(1+D1+D2+...+Dn)A:->(初值为1)每次都加上新的一个字符的ASCII码B:->(初值为0)原来的B+新的A的值->新的B求模,是{(A+B)对C求模}等价于{A对C求模+B对C求模} C=65521B(与C模运算后的值)左移16位加上A(与C模原创 2016-03-17 12:57:05 · 565 阅读 · 0 评论 -
java学习零散基础02
方法重载只跟参数有关,跟其他的都没有关系的。比如;boolean withdraw(double money){}int withdraw(int money){} 重写和重载的区别:在同一个类里面两个方法名一样,但是参数不一样,这叫做重载。两个继承关系的类,子类中有个方法和父类一样,参数一样,这叫重写。Overriding:子类在继承父类方法的同时并改写了此方法。(方法名称,参数原创 2016-03-17 12:57:02 · 450 阅读 · 0 评论 -
java中引用类型和基本类型的 == 与 equal 区别
1、java 中【基本类型】 和 【基本类型】的比较 == 比较的是值2、java中【基本类型】 和 【引用类型】 的比较编译后也都是基本类型和基本类型的比较。longj=10000l;Long i=newLong(10000);System.out.println(i==j);//true所以引用类型和基本类型比较,编译成底层指令时,把引用类型转成原创 2018-01-09 18:53:25 · 1343 阅读 · 0 评论