随笔分类 - IT-程序设计-JAVA
摘要:最近,看到好多不错的关于“无文件Webshell”的文章,对其中利用上下文动态的注入Filter的技术做了一下简单验证,写一下测试总结,不依赖任何框架,仅想学习一下tomcat的filter。
阅读全文
摘要:
随机读写文件类RandomAccessFile简介:
1) Java提供了一种功能特别强大的文件读写类:RandomAccessFile
2) 我们都知道File只能对文件进行创建、删除、改名等操作,但要读写文件的内容必须要经过流的包装;
3) 而RandomAccessFile虽然名字是以File作为结尾,但其并不和File是一个系列的,RandomAccessFile其实是一个文件I/O流,用文件名构造后可以直接对文件进行读写不需要用流进行包装;
4) 但是RandomAccessFile并不是严格意义上的I/O流!
阅读全文

摘要:
面向对象最具特色的“继承”环节,其中诸多知识点将一一提到。
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。[1] Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。
阅读全文

摘要:
问题描述:
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中。
设计思路:
使用java.util中的Random类来获取随机数,存入数组后,定义一个String类的对象result,利用for循环存储要输出的数组内容到result并且求和;再利用javax.swing中的JoptionPane类创建消息框进行结果输出。
阅读全文

摘要:
动手动脑,第六次Tutorial——数组
这次的Tutorial讲解了Java中如何进行数组操作,包括数组声明创建使用和赋值运算,写这篇文章的目的就是通过实际运用已达到对数组使用的更加熟练,下面是实践代码之后的感悟与总结:
阅读全文

摘要:
可以看到注释是乱码,要解决问题就跟我开始做吧,看右下角有个“UTF-8”,点一下选择“GBk”,选择“Reload”,千万不要点错,点错之后会导致失败。
然后你会发现,所有乱码都变成中文了,但是现在还是GBK编码,我们想要的是UTF-8编码格式,所以我们还要在右下角点击那个地方选择“UTF-8”,这次点击“Convert”,这样就将编码方式转化为UTF-8编码格式了。
上面如果那个“Reload”点错了,我也想不出办法转换回来,试了好几种方法都是不行,所以一定要按照我说的做!
阅读全文

摘要:
==判断不仅判断内存地址中的内容是不是相等,还要判断引用的地址是不是相等;而equals()方法则是用来判断内容相等的,这下明白了吧?
还有以下几点需要注意的地方:
在Java中,内容相同的字串常量(“a”)只保存一份以节约内存,所以s1,s2实际上引用的是同一个对象。
编译器在编译s1一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“ab”)。这种优化工作由Java编译器自动完成。
当直接使用new关键字创建字符串对象时,虽然值一致(都是“ab”),但仍然是两个独立的对
阅读全文

摘要:
JAVA初始化顺序
1、调用顺序:
JAVA类首次装入时,会对静态成员变量或方法进行一次初始化,但方法不被调用是不会执行的,静态成员变量和静态初始化块级别相同,非静态成员变量和非静态初始化块级别相同。
先初始化父类的静态代码--->初始化子类的静态代码-->
(创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码--->初始化父类构造函数--->初始化子类非静态代码--->初始化子类构造函数
其他说明:
2 、类只有在使用New调用创建的时候才会被JAVA类装载器装入
3、创建类实例时,首先按照父子继承关系进行初始化
4、类实例创建时候,首先初始化块部分先执行,然后是构造方法;然后从本类继承的子类的初始化块执行,最后是子类的构造方法
5、类消除时候,首先消除子类部分,再消除父类部分
阅读全文

摘要:
Java语言中三大特性:封装性、继承性、多态性,而方法的重载则反映了多态性,即同一个方法名确产生了不同的形态。重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。重载是一种多态(如C++,Java),有四种形式的多态:
1.虚函数多态
2模板多态
3重载
4转换
所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的能力,只是重载属于静态多态,而不是通过继承和虚函数实现的动态多态。
阅读全文

摘要:
异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的。在Java等面向对象的编程语言中异常属于对象**(Java语言中异常分为运行时异常(Exception)和编译型异常(Error))。此文将以生活为类比介绍Java的异常处理机制如何运转,Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。 Java异常的捕获和处理是一个不容易把握的事情,如果处理不当,不但会让程序代码的可读性大大降低,而且导致系统性能低下,甚至引发一些难以发现的错误。
阅读全文

摘要:
计算机产生的随机数其实并不随机,EN。。随机数并不随机。.随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。
要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方式提供常用的数学方法,
其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法
如:
产生一个100以内的整数:int x=(int)(Math.random()*100);
又如:
产生一个1-50之间的随机数:int x=1+(int)(Math.random()*50)
阅读全文

摘要:
Java中的类型转换以及变量的作用域,需要注意的问题。每个函数都可以强制将一个表达式转换成某种特定数据类型。自动(隐式)类型转换不会导致数据丢失。数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。 变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据
阅读全文

摘要:
为什么Java里创建对象数组不同于C++呢?Java中创建自定义类的对象数组的方法。
阅读全文

摘要:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
阅读全文
