
java
云海无涯victory
记录生活点滴
展开
-
动态代理
代理可以分为 "静态代理" 和 "动态代理",动态代理又分为 "JDK动态代理" 和 "CGLIB动态代理" 实现。静态代理:代理对象和实际对象都继承了同一个接口,在代理对象中指向的是实际对象的实例,这样对外暴露的是代理对象而真正调用的是 Real Object优点:可以很好的保护实际对象的业务逻辑对外暴露,从而提高安全性。 缺点:不同的接口要有不同的代理类实现,会很冗余JDK 动态代...转载 2020-01-10 14:30:15 · 177 阅读 · 0 评论 -
助记符
ldc:将int,float或String类型的常量值从常量池中推送至栈顶bipush:将单字节(-128 ~ 127)的常量值推送至栈顶sipush:将一个短整型常量值(-32768 ~ 32767) 推送至栈顶iconst_1:将int型的1推送至栈顶(iconst_m1 ~ iconst_5)anewarray:表示创建一个引用类型的(如类、接口、数组)数组,并将其引用值压入...原创 2020-01-03 11:27:51 · 2060 阅读 · 0 评论 -
为什么 Java 中只有值传递
首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。它用来描述各种程序设计语言(不只是Java)中方法参数传递方式。Java程序设计语言总...转载 2019-10-31 14:39:20 · 207 阅读 · 1 评论 -
synchronized关键字与对象锁
1、首先定义一个类Myobject。其中 methodA()为同步方法,methodB()为非同步方法public class MyObject {synchronized public void methodA(){try {System.out.println("begin methodA name:"+Thread.currentThread().getName());转载 2017-05-23 22:36:39 · 229 阅读 · 0 评论 -
synchronized关键字与对象锁
1、创建Service类,printA()和printB()为synchronized静态方法,printC()为synchronized方法public class Service {synchronized publicstatic void printA(){try {System.out.println("线程名称:"+Thread.currentThread().ge转载 2017-05-23 22:54:44 · 167 阅读 · 0 评论 -
java 数组的初始化
1.String[] strArr1 = new String[2];strArr1[0] = "a";strArr1[1] = "b";2.String[] strArr2 = new String[]{"a", "b"};3.String[] strArr3 = {"a", "b"};原创 2016-06-29 16:29:54 · 248 阅读 · 0 评论 -
反射之getMethods()与getDeclaredMethods()
1、getMethods():返回该类的所有公共方法,包括继承的方法。2、getDeclaredMethods():返回当前类的公共、保护、默认(包)访问和私有方法,但不包括继承的方法原创 2017-06-17 13:02:49 · 819 阅读 · 0 评论 -
java异常分类
1、首先看一下继承关系2、1)Error是由JVM虚拟机抛出的,描述的是内部系统错误。如果发生,除了通知以及尽可能稳妥的终止程序外,几乎什么也做不了。2)Exception,它描述的是由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。3)RuntimeException,它描述的是程序设计错误,例如错误的类型转换,数组访问越界。原创 2017-06-01 20:42:07 · 183 阅读 · 0 评论 -
常用集合知识
ArrayList1、初始默认大小为102、扩容条件:当add时 判断(size+1)- elementData.length 如果大于0,需要进行扩容3、int newCapacity = oldCapacity + (oldCapacity >> 1) 新增大小为原来的1.5倍HashMap一些基于jdk1.71、 重要参数 容量(默认值...原创 2019-04-23 15:53:36 · 120 阅读 · 0 评论 -
Java final 初始化变量的情况
一、只有final无staticpublic class FinalTest1 { //第一种方式:定义时直接赋值 private final int a = 1; private final int b; private final int c; //第二种方式:构造方法中赋值,注意所有的重载的构造方法都要为其赋值 public FinalT...原创 2019-04-30 10:27:01 · 348 阅读 · 0 评论 -
冒泡排序,简单插入排序,快速排序,二分查找的JAVA实现
package com.study;public class TestSearchAndSort {public static void main(String[] args) {int[] arr = {29,26,32,56,34,1,99,56,3};// bubbleSort(arr);// insertSort(arr);quickSort(arr, 0, arr.length-1);f原创 2016-09-27 16:17:56 · 303 阅读 · 0 评论 -
Java常用集合类、接口
在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便。所有的Java集合都在java.util包中。1)、List接口及其实现类List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。特点:集合中的元素有序、可重复;实现类:· ArrayList是以Ara转载 2016-09-14 14:08:37 · 761 阅读 · 0 评论 -
Java 开发创建oracle临时表语句
将Connection设置为非自动提交setAutoCommit(false)1.CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER ) ON COMMIT PRESERVE(DELETE)原创 2016-06-24 19:50:29 · 6125 阅读 · 0 评论 -
处理ResultSet查询结果并返回一个List方法---利用元数据
private List> parseResultSet(final ResultSet rs) throws Exception{List> resList = new ArrayList>();ResultSetMetaData rmd = rs.getMetaData();//获取元数据int columnCount = rmd.getColumnCount();//获取总的列数原创 2016-06-24 19:58:52 · 984 阅读 · 0 评论 -
Java 中this与super需要注意的地方
1)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。 2)super()和this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。 3)super()和this()均需放在构造方法内第一行。 4)尽转载 2016-06-26 15:51:11 · 447 阅读 · 0 评论 -
JAVA中 重写与重载需要注意的地方
重写方法的要求:1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检原创 2016-06-26 15:59:46 · 554 阅读 · 0 评论 -
JAVA配置文件的读取
public class TestConfigFileRead {public static void main(String[] args) throws Exception {/*** 使用ResourceBundle* 优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。* 缺点:只能加载类classes下面的资源文件且只能读取原创 2016-06-27 17:30:13 · 258 阅读 · 0 评论 -
关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String name)的路径
首先用类加载资源文件的方式可以有以下三种:(包结构图)1) InputStream inStream = DaoFactory.class.getResourceAsStream("dao.properties");2) inStream=DaoFactory.class.getResourceAsStream("/com/jdbc/dao/dao.properties转载 2016-06-27 17:50:35 · 402 阅读 · 0 评论 -
oracle分页查询及rownum的使用
1,首先来说一下rownum的使用rownum:对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集),简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值。1,select int_id, zh_label, rownum rn from table_name where rownu原创 2016-06-21 09:48:22 · 802 阅读 · 0 评论 -
java 中try catch finally 与return位置的关系
通过实际代码说明:1.代码在finally块之后有rerunpublic class Test {public static void main(String[] args) {int x = getin(6);System.out.println("返回的值:"+x);}public static int getin(int x){int y=0;try原创 2016-06-29 14:55:19 · 626 阅读 · 0 评论 -
Log4j具体输出信息级别配置方法
og4j具体输出信息级别配置方法 Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ]转载 2016-06-14 18:40:52 · 13715 阅读 · 1 评论 -
POI 操作excel注意事项
hssfSheet.getLastRowNum();//最后一行行标,比行数小1hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1原创 2015-11-17 20:02:01 · 489 阅读 · 0 评论