随笔分类 - java基础
此分类记录本人主要根据官网教程总结的一些java基础的语法
摘要:浏览以下内容前,请点击并阅读 声明 并发集合 java.util.concurrent包包含了许多对于java集合框架的补充,根据提供的接口可以将这些集合分为以下几类: BlockingQueue 定义了先进先出(first in first out)的数据结构,如果对一个满的队列添加元素或者从一个
阅读全文
摘要:以往说到的线程对象都是java平台中非常初级的API,用于处理一些基本的任务,对于一些复杂高级的工作,就需要一些高级的并发对象,尤其是针对于大规模并发应用程序,要充分利用现在的多核多处理器系统的性能。 以下内容包括一些从java5开始java平台具有的一些高并发特性。这些特征多数在包java.uti
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 当一个对象创建后的状态不可改变时就认为其为不可变对象,尽可能地利用不可变对象被公认为是构建简单可靠代码的有效方法。不可变对象在并发程序中比较有用,由于其状态无法改变,因此无法被线程的干扰损坏或者被视为不一致状态。 程序员一般不愿意使用不可变对象,因为他们担心创建一
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 线程经常需要协调其动作,最常用的协调方法就是保护代码块,该代码块以一个条件判断开始,当判断为true时才能开始执行。 假设一个方法guradedJoy必须等到变量joy由其他线程设定过后才能开始执行,这样的方法,理论上简单的循环直到满足条件就可以了,但是这样的循环
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 一个并发程序以适时方式执行的能力叫活性。以下部分介绍最常见的一种活性问题,死锁,并简单介绍其他两种活性问题,饥饿和活锁。 死锁 死锁描述了一种情况:两个或两个以上的线程都被永久封堵,而他们还在相互等待对方释放一个对象的锁。 运行以上代码,很有可能就会产生死锁,程序
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 线程间的通信主要是通过开放对于字段以及字段引用的对象的访问权限实现,这种形式的通信非常高效,但是会产生两种可能的错误:线程冲突和内存一致性错误,防止这些错误的工具就是同步。 然而,同步可能引入线程争夺,当两个两个或者连个以上线程试图同时访问同一资源时就会发生资源线
阅读全文
摘要:注释是一种形式的元数据,提供了非程序自身的数据,注释对于被注释的代码没有直接的影响。 本文主要概括注释的使用,java平台(SE)预定义的注释,类型注释是如跟可插入类型系统连用达到更强的类型检查的,以及如何实现重复注释。 注释有许多用途,包括: 为编译器提供信息--编译器可以利用注释检查错误或者抑制
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 线程对象 每个线程都和类Thread的实例相关,有两种基本的使用Thread对象来创建并发应用的方法: 直接控制线程的创建和管理,每次需要开始一个异步任务时简单地实例化Thread类。 从你的程序中转移线程的管理,将应用的任务传递给一个执行程序。 本章主要讨论Th
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 软件的并发是指同时做多件事情,java平台一开始就支持并发编程,java编程语言以及类库含有对并发最基本的支持,从5.0版本开始,java平台开始包含一些高并发的API,包含在java.util.concurrenct包中。 进程和线程 当前的编程语言中有两种基本
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 8 类型擦除 为实现泛型,java编译器进行如下操作进行类型擦除: 如果类型参数有限制则替换为限制的类型,如果没有则替换为Object类,变成普通的类,接口和方法。 有必要时插入转换操作以保证类型安全 产生桥接方法以保证继承类型的多态性 类型的擦除确保了类型参数化
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 6 类型推测 java编译器能够检查所有的方法调用和对应的声明来决定类型的实参,即类型推测,类型的推测算法推测满足所有参数的最具体类型,如下例所示: 6.1 泛型方法的类型推测 类型的推测可以使泛型方法的使用语法和普通的方法一样,不必指定尖括号内的类型,如上述例子
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 泛型的使用能使类型名称作为类或者接口定义中的参数,就像一般的参数一样,使得定义的类型通用性更强。 泛型的优势: 编译具有严格的类型检查 java编译器对于泛型代码的类型检查更加严格,能够发现普通代码中的一些运行时错误。 消除类型转化 能够使程序员实现通用的算法 通
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 为了使类型更容易查找和使用,避免命名冲突,以及可视范围的控制,程序员一般将相关的一些类型组合到一个包中。组合的类型包括类,接口,枚举和注释,枚举是一种特殊的类,而注释是一种特殊接口,所以说我们一般的类型包括接口和类。 java平台根据功能将一系列的类型按照功能组合
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 一个由其他类继承的类叫子类(也叫继承类,扩展类等),该类继承的类叫父类或超类。除了Object类意外,所有的类都有切仅有一个父类,如果一个类没有用extends关键词声明父类,则该类隐含继承Object类,因此如果一个类继承另外一个父类,而该父类可能又是继承的另外
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 接口是java语言中的一个引用类型,和类一样,接口可以包含常量,方法签名,默认方法,静态方法和嵌套类型。含有方法主体的只有其中的默认方法和静态方法。接口不能被实例化,它们只能被类实现或者被其他接口继承。 接口的声明部分包含修饰词,关键词interface,接口名称
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 对象排序 一个List对象中如果元素类型为String,则其按字母表顺序排序,而如果元素类型为Date,则按照年代排序,那如何判断元素的排序呢?String和Date对象都实现Comparable接口,Comparable接口的实现类会提供一个自然排序规则,能够实
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 Queue接口(队列) 需要对一些列的元素进行处理前,我们可以把他们放到Queue对象中,除了继承Collection接口的方法外,队列还有一些插入,删除和检查操作,Queue接口定义如下: 所有的对列方法都包含由两种形式:(1)如果方法执行失败,则抛出异常(2)
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 Lambda表达式与匿名类的作用类似,当实现的接口仅有一个方法时,使用lambda表达式能够减少代码的使用量。 上述代码为使用lambda表达式的示例,相比较于匿名类,lambda表达式的代码量明显更少。 lambda表达式的使用需要用到功能接口,功能接口是仅含有
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 集合(collection),可以看做一个容器,是将多个元素组合成一个单位的对象。集合用来存储,检索,操作,交互一些聚集的数据。通常,集合用来表示一个组的数据,就像一副牌,一个邮箱,一个电话本等的作用。 java集合框架 集合框架是一个能够表示和操作集合的统一结构
阅读全文
摘要:浏览以下内容前,请点击并阅读 声明 java允许在一个类中定义另外一个类,这就叫类嵌套。类嵌套分为两种,静态的称为静态嵌套类,非静态的又称为内部类。 使用嵌套类的原因: 嵌套类也属于类的成员,因此也可使用类成员的可视范围控制修饰词(public,protect,private),内部类能够使用其所在
阅读全文

浙公网安备 33010602011771号