J2SE知识点摘记(十二)】的更多相关文章

1.      File类 下面的构造方法可以用来生成File对象 File(String directoryPath) geName()用于返回文件名,getParent()返回父目录名,exists()方法在文件存在的情况下返回ture,反之返回false.然而File类是不对称的,意思是虽然存在可以验证一个简单文件对象属性的很多方法,但是没有相应的方法改变这些属性. 2.        RandomAccessFile类 RandomAccessFile类支持"随即访问"方式,可…
一.          查询数据 注意sql的内容. 通过ResultSet接口保存全部的查询结果,通过Statement接口中的executeQuery()方法查询.查询之后需要分别取出.通过next()方法找到返回每一行的数据,每一行中各个列的数据需要通过一下方法取得: 取得整型:getInt() 取得字符串:getString() 取得日期:getDate() 取得否点数:getFloat() 注意:java从数据库中将查询信息调入到ResultSet的对象内部,所以使用java程序调出时…
Collection 1.2.1         常用方法 Collection 接口用于表示任何对象或元素组.想要尽可能以常规方式处理一组元素时,就使用这一接口.Collection 在前面的大图也可以看出,它是List和Set 的父类.并且它本身也是一个接口.它定义了作为集合所应该拥有的一些方法.如下: 注意: 集合必须只有对象,集合中的元素不能是基本数据类型. Collection接口支持如添加和除去等基本操作.设法除去一个元素时,如果这个元素存在,除去的仅仅是集合中此元素的一个实例. b…
Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: 1)  Collection . 一组对立的元素,通常这些元素都服从某种规则.List必须保持元素特定的顺序,而Set 不能有重复元素. 2)  Map . 一组 成对的“键值对”对象.初看起来这似乎应该是一个Collection ,其元素是成对的对象,但是这样的设计实现起来太笨拙了,于是我们将Map明确的提取出来形成一个独立的概念.另一方面,如果使用Collection 表示Map的部分内容,会便于查看此部分内容.因此Map…
1.         IO包中的类层次 ┌BufferedInputStream ├DataInputStream ┌FilterInputStream┼LineNumberInputStream ├FileInputStream └PushbackInputStream ├ByteArrayInputStream ┌InputStream──┼PipedInputStream │ ├SequenceInputStream │ ├StringBufferInputStream │ └Object…
1.        字节流和字符流的转换 以字符为导向的stream基本上有与之相对应的以字节为导向的Stream,两个对应类实现的功能相同,只是操作时的导向不同 字节输入流转换为字符输入流: InputStreamReader是字节流向字符流的桥梁,它使用指定的charset读取字节并将其解码为字符,它使用的字符集可以由名称指定或显示给定.根据InputStream的实例创建InputStreamReader的方法有4种: InputStreamReader(InputStream in)//…
1.        字符流 Reader是定义java的流式字符输入模式的抽象类,该类所有方法在出错的情况下都将引发IOException异常. Int read(char buffer[])           试图读取buffer中的buffer.length个字符,返回实际成功读取的字符数. Abstract int read (char buffer[],int offset,int numChars)      试图读取buffer中从buffer[offset]开始的numChats…
1.        多线程的同步 2.        同步代码块 即程序中不能有多个线程同时在这两句代码之间执行.(必须两句代码执行完,其他线程才可以公用执行) 同步代码块定义语法如下 ... synchronized(对象) {需要同步的代码:} 在同一时刻只能有一个线程既可以进入同步代码块内运行,只有当该线程离开同步代码块后后,其他线程才能进入同步代码块内运行. 3.        同步方法 除了同步代码块,也可以同步方法,只要在需要同步的方法定义前面加上关键字synchronized即可.…
为了用“集合框架”的额外部分把排序支持添加到 Java 2 SDK,版本 1.2,核心 Java 库作了许多更改.像 String 和 Integer 类如今实现 Comparable 接口以提供自然排序顺序.对于那些没有自然顺序的类.或者当您想要一个不同于自然顺序的顺序时,您可以实现 Comparator 接口来定义您自己的. 为了利用排序功能,“集合框架”提供了两种使用该功能的接口:SortedSet 和 SortedMap. Comparable 接口 在 java.lang 包中,Com…
Set 1.5.1        概述 Java 中的Set和正好和数学上直观的集(set)的概念是相同的.Set最大的特性就是不允许在其中存放的元素是重复的.根据这个特点,我们就可以使用Set 这个接口来实现前面提到的关于商品种类的存储需求.Set 可以被用来过滤在其他集合中存放的元素,从而得到一个没有包含重复新的集合. 1.5.2        常用方法 按照定义,Set 接口继承 Collection 接口,而且它不允许集合中存在重复项.所有原始方法都是现成的,没有引入新方法.具体的 Se…
 覆写hashCode() 在明白了HashMap具有哪些功能,以及实现原理后,了解如何写一个hashCode()方法就更有意义了.当然,在HashMap中存取一个键值对涉及到的另外一个方法为equals (),因为该方法的覆写在高级特性已经讲解了.这里就不做过多的描述. 设计hashCode()时最重要的因素就是:无论何时,对同一个对象调用hashCode()都应该生成同样的值.如果在将一个对象用put()方法添加进HashMap时产生一个hashCode()值,而用get()取出时却产生了另…
Map 1.4.1        概述 数学中的映射关系在Java中就是通过Map来实现的.它表示,里面存储的元素是一个对(pair),我们通过一个对象,可以在这个映射关系中找到另外一个和这个对象相关的东西. 前面提到的我们对于根据帐号名得到对应的人员的信息,就属于这种情况的应用.我们讲一个人员的帐户名和这人员的信息作了一个映射关系,也就是说,我们把帐户名和人员信息当成了一个“键值对”,“键”就是帐户名,“值”就是人员信息.下面我们先看看Map 接口的常用方法. 1.4.2         常用…
List 1.3.1        概述 前面我们讲述的Collection接口实际上并没有直接的实现类.而List是容器的一种,表示列表的意思.当我们不知道存储的数据有多少的情况,我们就可以使用List 来完成存储数据的工作.例如前面提到的一种场景.我们想要在保存一个应用系统当前的在线用户的信息.我们就可以使用一个List来存储.因为List的最大的特点就是能够自动的根据插入的数据量来动态改变容器的大小.下面我们先看看List接口的一些常用方法. 1.3.2         常用方法 List…
我们简单介绍一下这个接口: 1.4.3        Comparable 接口 在 java.lang 包中,Comparable 接口适用于一个类有自然顺序的时候.假定对象集合是同一类型,该接口允许您把集合排序成自然顺序. 它只有一个方法:compareTo() 方法,用来比较当前实例和作为参数传入的元素.如果排序过程中当前实例出现在参数前(当前实例比参数大),就返回某个负值.如果当前实例出现在参数后(当前实例比参数小),则返回正值.否则,返回零.如果这里不要求零返回值表示元素相等.零返回值…
1.    对象的声明 "类名 对象名 = new 类名();"例子:Person P;//先声明一个Person类的对象p p=new Person();//用new关键字实例化Person的对象p Person P=new Person(); 2.       对象的比较 有两种方式可用于对象间的比较,即"=="运算符与equals()方法. "=="用于比较两个对象的内存地址值是否相等;equals()方法用于比较两个对象的内容是否一致.例…
实现原理 前面已经提了一下Collection的实现基础都是基于数组的.下面我们就已ArrayList 为例,简单分析一下ArrayList 列表的实现方式.首先,先看下它的构造函数. 下列表格是在SUN提供的API中的描述: ArrayList()           Constructs an empty list with an initial capacity of ten. ArrayList(Collection c)           Constructs a list cont…
1.        数组的声明时无法指定数组的长度. 2.        一维数组的声明和内存的分配 "数据类型    数组名[]; //声明一维数组     数组名=  new 数据类型[个数];//分配内存 给数组"例子: int score[];score=new int[3]; "数据类型   数组名[]=new 数据类型[个数]"例子:int score[]=new int[11]; 3.        一维数组的赋值 "数据类型   数组名[]…
一.          数据库连接 在JDBC的操作过程中,进行数据库连接的主要步骤如下: 通过Class.forName()加载数据库的驱动程序.首先需要利用来自Class类中的静态方法forName(),加载需要使用的Driver类. 通过DriverManager类进行数据库的连接.成功加载Driver类以后,Class.forName()回向DriverManager注册该类,此时则可通过DriverManager中的静态方法getConnection进行数据库的创建连接.同时,连接的时…
1.        static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化.如果一个成员变量是static 的,那么我们可以通过 类名 .成员变量名 的方式来使用它 的方式来使用它 (推荐使用这种方式) . static修饰方法: static 修饰的方法叫做静态. 对于…
1.        引用数据类型的传递 java用引用代替C++中的指针 fun()方法接收的参数是是Change c1,也就是说说fun()方法接受的是一个对象的引用,所以fun方法中所所做的操作就会影响原先的参数. 2.        Obeject是所有类的父类,其中的toString()方法是需要被覆写的.Object类中有有一个equals方法,此方法用于比较对象是否相等,而且此方法必须被覆写.equals没有被覆写时,实际上是调用了Object类中的equals方法,比较的是内存地址…
1.        抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现.此方法只声明了返回值的数据类型,方法名称与所需的参数,但没有定义方法体. 含有抽象方法的类类必须被声明为抽象类,抽象类的子类必须覆写所有的父类的抽象方法后才能被实例化,否则这个子类还是个抽象类类.例如:abstract class Person中声明一抽象方法talk   public abstra…
1.         在java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类.但在java中却允许多层继承. 2.         非内部Class只能被public或者default修饰. 3.         子类构造过程中必须调用父类的构造函数. 4.         实际上子类对象创建后含有一个父类对象,有this去引用自身,super去引用父类. 5.          子类对象在实例化时会默认先去调用父类中的无参构造方法,之后再在调用本类中的相应构造方法.但是,实际…
1.        Applet Applet的生命周期分为四个阶段,各阶段分别由init,start,stop和destroy四种方法来具体体现. public void init() 此方法通知Applet,方法已经被装入系统,在第一次调用start方法之前总是先调用它.Init方法是Applet运行的起点.如果需要执行初始化任务,可以在Applet的子类中重载该方法,例如,在init方法中创建线程,而在destroy方法中消灭(destroy)它们. public void start()…
1.        字节流 InputStream(输入字节流)是一个定义了java流式字节流输入模式的抽象类.该类的所有方法在出错时都会引发一个IOExcepiton异常. Void close()          关闭输入流.关闭之后若再读取则会产生IOException异常. Void reset()           重新设置输入指针到先前设置的表之处. Int read()                  如果下一个字节可读则返回一个整型,遇到文件尾时返回-1 Int read(…
Thread t ↓ synchromized(this)                     线程t得到对象的锁标志 ↓                                   此时线程t被放置在对象的等待线程池中, wait()                          t自动释放对象的锁标志 ↓                                    当另外的线程执行了对象的notify()方法后 notify()                   …
1.         线程操作的一些方法 方法名称              方法说明 public static int activeCount()             返回线程组中目前活动的线程的数目 public static native Thread  currentThread()           返回目前正在执行的线程 public void destroy()            销毁线程 public static boolean interrupted()     …
1.        多线程指的是在单个进程中可以同时运行多个不同的线程,执行不用的任务.多线程意味着一个程序的多行语句可以看上去几乎同时进行. 同样作为基本的执行单元,线程是划分得比进程更小的执行单位. 每个进程都有一段专用的内存区域.与此相反,线程却共享内存单位(包括代码和数据),通过共享的内存单元来实现数据交换,实时通信与必要的同步操作. 2.              单线程: 创建TestThread对象之后调用run()方法,输出"TestThread在运行",最后执行mai…
1.        枚举的用法 enum 枚举名{枚举值表标};例子:"enum weekday{sun,mon,tue,wed,fri,sat}a,b,c;" For循环语句中使用的一个values()方法,是包含在Enum类里面的一种可以得到当前对象取值的方法.通过For循环将包含在Color枚举类型中的对象依次输出. entrySet()是定义在Map类中的一个构造方法:返回此映射中包含的映射关系的 set 视图集合.Map.Entry 表示单个映射关系即一个key+value…
Bristol大学密码学博士生的五十二个知识点 这个系列,是Bristol大学的密码安全工作组为密码学和信息安全相关的博士准备了52个基本知识点. 原地址:http://bristolcrypto.blogspot.com/2014/10/52-things-number-1-different-types-of.html 对密码学基础是一个极好的总结. 每篇内容不多但是问题提出的极好.我翻译过来是随手之意. 计算机工程方面(E) Number 1 通用处理器,带指令扩展的通用处理器,专用处理器…
第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗? 几个月前(回到3月份),您可能还记得我在这个系列的52件东西中发布了第23件(可以在这里找到).这篇文章的标题是"编写一个C程序来实现蒙哥马利算法",并包含了实现的一部分.在本文中,我们将研究这个实现,并了解它如何泄漏信息,从而对泄漏的情况有一个实际的了解. 在继续之前,我想提醒你一下我的上一篇文章,它研究了SPA和DPA攻击的区别.从那里你会记得,SPA攻击使用一个或很少的痕迹的发现趋势和工作模式(…