编程语言
Blog_Zyx
走好Java之路
展开
-
抽象类与接口
抽象类: 1、抽象类不能被实例化,只能用来被继承。 2、有抽象方法的类必须定义为抽象类接口: 1、接口的变量系统自动设定为public static fianl修饰,不用自己修饰,也不可更改,方法也自动是public abstract,不用自己修饰,也不可更改, 2、接口可以多继承,继承后会得到父接口所有的变量及方法。一个接口也可以实现多个接口, 测试用例如下:package cn.lde原创 2017-05-19 14:41:53 · 276 阅读 · 0 评论 -
IO--字符流操作五种方式及字节流的四种方式+图谱
字节流复制文件的四种方式(简单的读取操作,将复制操作拆分即可)import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputSt原创 2017-08-05 09:42:57 · 932 阅读 · 0 评论 -
IO流--将单级文件夹下的文件复制到目标文件夹下,并重命名所有文件
如题:/** * 将单级目录H:\\aa 目录下,.java 复制到 h:\\bb,并重命名为.jdg文件 * @author ZYxiao * */public class FileCopyRename { public static void main(String[] args) throws IOException{ File inputFile =原创 2017-08-05 12:39:24 · 491 阅读 · 0 评论 -
IO流--多级文件夹下的所有目录复制到指定目录下
如题:/** * 将多级目录H:\\aa 目录下,.java 复制到 h:\\cc下 * @author ZYxiao * */public class CopyFileFolder { public static void main(String[] args) throws IOException { File inputFile = new File原创 2017-08-05 12:40:19 · 798 阅读 · 2 评论 -
几种不常有IO流,自己用,比较粗糙
如题:原创 2017-08-05 16:08:00 · 307 阅读 · 0 评论 -
Java 关于继承中的static代码块,普通代码块及构造方法的执行顺序
package cn.edu.bjsxt;class Base { { System.out.println("base block"); } static { System.out.println("base static block"); } Base() { System.out.println("base转载 2017-07-28 16:22:39 · 589 阅读 · 0 评论 -
螺旋二维数组
package cn.bjsxt.luoxuan;import java.util.Scanner;public class LuoXuan{ //检测边界与是否该方向下一个已赋值 //返回方向 public static int checkBounds(int direction, int height, int width, int[][] array){原创 2017-07-29 12:35:27 · 1024 阅读 · 0 评论 -
Java 使用 ObjectStream 时的注意事项
Java 使用 ObjectStream 时的注意事项 在向下阅读之前,请注意 JavaBean 要实现 Serializable 接口。初始化时发生了什么?ObjectOutputStream 初始化时会送出其 header 数据给对端。ObjectInputStream 初始化时会阻塞地接收来自对端的 header 数据。发现了吗,这可能会有两处问题。转载 2017-08-28 13:00:55 · 821 阅读 · 0 评论 -
Servlet中解决乱码的三种方式
1、通用方式: String path = request.getParameter(“btn”); path = new String(path.getBytes(“iso-8859-1”), “utf-8”);2、解决post方式的乱码问题: request.setCharacterEncoding(“utf-8”); String name = request.getParameter原创 2017-09-26 22:46:20 · 950 阅读 · 0 评论 -
Servlet生命周期
Servlet的生命周期是由容器管理的,在其生命周期中拥有以下三个阶段: 1、 初始化 2、 服务 3、 销毁当一个客户端第一次访问某个servlet时,容器会自动创建该servlet对象,并在创建完成后执行一次该对象的init方法。然后在新线程中调用该对象的service方法,然而容器在对象调用完毕后并不会立即销毁该对象,而是在容器的关闭过程中销毁这个对象,在销毁该对象前调用这个对象的原创 2017-09-20 21:45:01 · 523 阅读 · 0 评论 -
TomCat工作原理
TomcatServer处理一个HTTP请求的过程:描述: 1、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。 2、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。 3、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。 4原创 2017-09-20 21:52:38 · 655 阅读 · 2 评论 -
九个jsp内置对象
所谓的jsp的内置对象其实就是在jsp中已经为我们提供好了。拿来就可以使用的。 共有9个。因为传上来后论坛不能排版,所以只能传图片了。。。 `原创 2017-09-29 20:28:26 · 429 阅读 · 0 评论 -
PreparedStatement 如何防止SQL注入
SQL注入最简单也是最常见的例子就是用户登陆这一模块,如果用户对SQL有一定的了解,同时系统并没有做防止SQL注入处理,用户可以在输入的时候加上’两个冒号作为特殊字符,这样的话会让计算机认为他输入的是SQL语句的关键字从而改变你的SQL语句,造成不可估量的损失。 在JDBC中通常会使用PreparedStatement来代替Statement来处理sql语句,如 String转载 2017-10-17 10:25:04 · 537 阅读 · 0 评论 -
数组优缺点总结
优点: 1、按照索引查询元素速度快 2、能存储大量数据 3、按照索引遍历数组方便缺点: 1、根据内容查找元素速度慢 2、数组的大小一经确定不能改变。 3、数组只能存储一种类型的数据 4、增加、删除元素效率慢 5、未封装任何方法,所有操作都需要用户自己定义。原创 2017-07-27 19:12:10 · 18180 阅读 · 0 评论 -
选择排序
选择排序 算法思想:从待排序的数组中选择一个最小的元素,将它与数组的第一个位置的元素交换位置。然后从剩下的元素中选择一个最小的元素,将它与第二个位置的元素交换位置,如果最小元素就是该位置的元素,就将它和自身交换位置,依次类推,直到排序完成。//选择排序 public static void selectSort(int[] array){ int len = array原创 2017-07-27 19:06:18 · 263 阅读 · 0 评论 -
Java 静态绑定与动态绑定
程序绑定的概念:绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定.静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。例如:C。针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,stat转载 2017-08-04 12:18:46 · 341 阅读 · 0 评论 -
多态--回调
个人理解:基于多态实现,基本语法与多态相同,回调适用于一个完整的过程中某一步骤存在用户的差异,此处通过参数实现用户功能的调用,参数可以用接口或抽象类继承来实现,不过一般用接口。 如:package cn.ldedu;/** * 测试回调 * @author Lenovo * */public class testCallBack { public static void tes原创 2017-05-19 14:43:55 · 407 阅读 · 0 评论 -
Java--内部类
内部类 1、内部类中的类只能通过外部类调用,内部类可以访问外部类的私有属性。 2、内部类分为成员内部类(静态内部类,非静态内部类),匿名内部类(用于只调用极少次数的类,省去声明类的过程,直接在内部写,如监听器),局部内部类(用的极少,即定义在方法内部),基本语法在下方代码中体现(不含局部内部类)。package cn.ldedu;/** * 测试内部类 * @author Lenovo *原创 2017-05-19 14:45:38 · 314 阅读 · 0 评论 -
关于String类型遗漏点与StringBuilder、StringBuffer
1、String可以直接用字符数组赋值 如: char[] a={‘a’,’b’,’c’,’d’}; String b=new String(a); 2、String是不可变字符序列,并不是说String的值不可改变,而是在改变时原有的值不会改动,而会开辟新的空间在拷贝原值的基础上做改动。因为在String的源码里value的修饰符是final,不能修改,每原创 2017-05-19 14:48:17 · 369 阅读 · 0 评论 -
数组打印、复制、赋值替换、二分法查找、命令行参数及增强for循环
1、打印数组时可以不用循=循环打印,调用Arrays.toString(数组名)即可,只是打印结果会包含数组两边的方括号,如[1,2,3]。 2、Arrays.binarysearch(x); 数组二分法搜索 3、arrays.fill(a,2,4,100) 将数组a中索引为2到4的元素替换为100 4、Arrays.fill(a,6); 将a数组全部替换为6 5、System.array原创 2017-05-22 13:04:29 · 571 阅读 · 0 评论 -
包装类、自动装箱、自动拆箱
包装类: 1、Java中的基本类型都有其对应的封装,即包装类,简而言之就是将基本数据类型封装为一个对象。 2、对应的包装类大部分是基本数据类型的首字母大写,但是有特例,如:int—Integer, char–Character。 3、包装类可以调用一些方法,而基本数据类型则无法调用。 4、基本数据类型的默认值为:整形:0; boolean:false; char:/u0000; 浮点原创 2017-05-22 13:07:01 · 401 阅读 · 0 评论 -
按位取反的用法
//按位取反:先求当前数的补码,再将补码完全取反,然后根据取反后的补码求其原码import java.util.Random;public class Test4{ public static void main(String[] args){ //按位取反:先求当前数的补码,再将补码完全取反,然后根据取反后的补码求其原码 System.out.println(~0);原创 2017-07-20 12:08:24 · 1363 阅读 · 0 评论 -
类于类之间的关系--继承、实现、依赖、关联、聚合、组合的联系与区别
继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见转载 2017-08-01 19:05:06 · 1788 阅读 · 0 评论 -
正则表达式--Split易错题
public class TestSplit { public static void main(String[] args) { String s= "aa bb cc"; System.out.println(Arrays.toString(s.split(" +"))); //split括号里的数代表1或更多个空格 Stri原创 2017-08-08 19:39:52 · 403 阅读 · 0 评论 -
Java三大特征--多态
1、程序运行的最终结果只在执行期间才被确定,编译时无法确定 2、编译时所用参数类型一般为父类,运行时参数类型为确定的子类 3、三个必要条件:要有继承,子类要有方法的重写,父类引用指向子类对象(只可向下转型,不可向上转型)测试例子如下:package cn.ldedu;/** * 测试多态 * @author Lenovo * */class Animal{ public vo原创 2017-05-19 14:39:24 · 352 阅读 · 0 评论 -
泛型方法与普通方法
使用了泛型类型的方法不是泛型方法,如: 这里只是采用了泛型而已而像下图这样才是泛型方法: 这样才是所谓的泛型方法,意思是这个方法所自己定义的泛型,在调用时,根据参数类型确定它的类型原创 2017-08-16 20:38:17 · 928 阅读 · 0 评论 -
继承--关于子类对象中包含父类内容的随笔
今天老师讲到这里是走了下神,之后一直理解不到位,很难受。。。 代码及堆内的内存图如下:class A{}class B extends A{}class C extends B{} 纠结的问题是为什么可以访问实例成员变量,而不能访问静态的呢,后来经过老师提醒,知道堆内C的对象包含的只是普通成员变量,父类的方法和静态成员等都在方法区中,不写在堆中。。。调用时通过父类指向方法区调用ps:静态方法原创 2017-08-02 20:46:28 · 737 阅读 · 0 评论 -
Java面试题——随时更新
1、Fianl 、finally、finalize的区别 2、线程的生命周期 (1)粗略版: 完整版:原创 2017-08-03 10:09:39 · 328 阅读 · 0 评论 -
IO操作时,系统为什么不会将字符与汉字搞错
FileInputStream 读取英文字符时,得到的为正数,而取汉字时,得到的第一个int值为负值,第二个值可能为正数,所以当系统发现有一个int值为负值是,便将他与后面的一个int值进行拼接。故而不会搞错。public static void main(String[] args) { String s="abcd"; byte[] b1= s.getBytes(原创 2017-08-03 19:39:03 · 283 阅读 · 0 评论 -
MySQL数据库优化(三)——MySQL悲观锁&&乐观锁(并发控制)
一、悲观锁 1、排它锁,当事务在操作数据时把这部分数据进行锁定,直到操作完毕后再解锁,其他事务操作才可操作该部分数据。这将防止其他进程读取或修改表中的数据。 2、实现:大多数情况下依靠数据库的锁机制实现 一般使用 select ...for update 对所选择的数据进行加锁处理,例如select * from account where name=”Max” for upd...转载 2018-02-25 22:33:51 · 794 阅读 · 0 评论