`
文章列表
元数据的作用 如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类: 编写文档:通过代码里标识的元数据生成文档。 代码分析:通过代码里标识的元数据对代码进行分析。 编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查。 基本内置注释     @Override 注 释能实现编译时检查,你可以为你的方法添加该注释,以声明该方法是用于覆盖父类中的方法。如果该方法不是覆盖父类的方法,将会在编译时报错。例如我们为某 类重写toString() 方法却写成了tostring() ,并且我们为该方法添加了@Override 注释;      @D ...
java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time 【父类】java.util.Date日期格式为:年月日时分秒 【子类】java.sql.Date日期格式为:年月日[只存储日期数据不存储时间数据] 【子类】java.sql.Time日期格式为:时分秒 【子类】java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 针对不同的数据库选用不同的日期类型 ·Oracle的Date类型,只需要年月日,选择使用jav ...
   泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全 和运行时更小地抛出ClassCastExceptions的可能。    所谓泛型:就是变量类型的参数化。 当没有指定泛型继承的类型或接口时,默认使用T extends Object,所以默认情况下任 何类型都可以作为参数传入。     使用<?>或是<? extends SomeClass>的声明方式,意味著您只能通过该名称來 取得所参考实例的信息,或者是移除某些信息,但不能增加它的信息,因为只知 道当中放置的是SomeClass的子类,但不确定是什么类的实例,编译器不让您加入 信息 ...
从操作系统的角度讲,os会维护一个ready queue(就绪的线程队列)。并且在某一时刻cpu只为ready queue中位于队列头部的线程服务。 但是当前正在被服务的线程可能觉得cpu的服务质量不够好,于是提前退出,这就是yield。 或者当前正在被服务的线程需要睡一会,醒来后继续被服务,这就是sleep。 sleep方法不推荐使用,可用wait。 线程退出最好自己实现,在运行状态中一直检验一个状态,如果这个状态为真,就一直运行,如果外界更改了这个状态变量,那么线程就停止运行。 1.sleep()方法 在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁标志”。不推荐使 ...
import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; /** * 一个线程处理文件写入 * @author app * */ class Download extends Thread { // 定义字节数组(取水的竹筒)的长度 private final int BUFF_LEN = 32; // 定义下载的起始点 private long start; // 定义下载的结束点 private long end; // 下载资源对应的输入流 p ...
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。 Comparator位于包java.util下,而Comparable位于包   java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作,已经实现了Comparable接口) ...
目前GitHub非常的火,无论是国内的还是国外的现在都在使用。抽空研究了一下这个东西的使用方法,并总结出来,虽然有一点晚,但是我觉得还是有需要了解和学习的地方。好了,进入主题,一步一步的去介绍,当然最容易的学习方法,当然是跟着github网站提供的步骤去学习。这里我也是针对这个内容来进行总结。 1、github的网址: https://github.com  2、选择login,输入用户名,密码,登陆。登陆之后,就会进入到主页,这里包含了四个基本的应用: Set Up Git    Create A Repository Fork a Repository Be Social 3、S ...
java在运行之后,就将内存控制权交给了java虚拟机。 java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干不同的数据区域。 运行时的内存区分为以下几部分:     1.  程序计数器区域               程序计数器是一块较小的内存空间,是为当前线程所执行的字节码的行号指示器。  由于多线程的存在,所以每个线程都需要有一个独立的程序计数器。 各个线程之间的程序计数器互不影响,独立存储。 所以程序计数器的内存区域是线程私有的。               如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。 如果执行的是n ...
java移位运算符不外乎就这三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。  1、 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数。 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数。 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。 2)运算规则 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。 当左移的 ...
public class SingletonTest { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); Singleton singleton2 = Singleton.getInstance(); System.out.println(singleton == singleton2); } } class Singleton { // private static Singleton singleton = ne ...
package test.test; import java.io.BufferedOutputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException; public class FileBytesConvert {  /**  * @param args  */ public static void main(String[] args) ...
ServerSocket类有以下三个选项: 1.       SO_TIMEOUT: 设置accept方法的超时时间。 2.       SO_REUSEADDR:设置服务端同一个端口是否可以多次绑定。 3.       SO_RECBUF:设置接收缓冲区的大小。 一、SO_TIMEOUT选项 可以通过SeverSocket类的两个方法(setSoTimeout和getSoTimeout)来设置和获得SO_TIMEOUT选项的值,这两个方法的定义如下:
几年来中国网民数量激增,已达到3亿多,热门网站在线人数也飙升,百度和腾讯仅凭借内地市场就挤进了Alex排行榜前十名,腾讯更是创下了同时一亿人在线的记录,没办法中国人多啊,但是一想到中国互联网公司由于文化和政 ...
动态应用,是相对于网站静态内容而言,是指以c/c++、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式存储系统等密不可 ...
架构实际上一种权衡的艺术,它的美往往体现在众多矛盾体间的周旋和则中。可以说,没有最好的架构,只有最合适的架构。 在一些经典的系统中常常存在多个矛盾因素并存的情况,而这些系统的经典架构就反映出如何解决这些矛盾而相克的因素的方案,比如操作系统的存储结构和分布式系统中CAP原则就是典型的例子。 1. 操作系统的存储要达到的目的有以下三个: 快速存取 大容量 单位容量的低成本 而这三个目的是相互矛盾和牵制的,存取越快单位容量成本越高;容量越大,存取速度越慢;容量越大,价格越低。既然存在这些客观因素就只能靠架构来解决,操作系统采取的办法就是层次化的存储架构。把不同容量、速度和 ...
Global site tag (gtag.js) - Google Analytics