Thinking in Java from Chapter 21】的更多相关文章

From Thinking in Java 4th Edition 并发 线程可以驱动任务,因此你需要一种描述任务的方式,这可由Runnable接口来提供. 要想定义任务,只需要实现Runnable接口,并编写run()方法,使得该任务可以执行你的命令. public class LiftOff implements Runnable { protected int countDown = 10; // Default private static int taskCount = 0; priv…
chapter 20 注解 三种标准注解和四种元注解: 编写注解处理器 chapter 21 并发 基本的线程机制 定义任务 package cn.test; public class LiftOff implements Runnable { protected int countDown = 10; private static int taskCount=0; private final int id= taskCount++; public LiftOff() {} public Lif…
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 String(byte[] bytes,String charsetName): 通过指定的字符集解码字节数组 byte[]getBytes(String charsetName) 使用指定的字符串编码为字节数组 String s="你好"; //编码String-byte[] byte…
Visitor定义:作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为. 为何使用Visitor模式 Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有各种鲜明类型特征的对象一旦放入后,再取出时,这些类型就消失了.那么我们势必要用If来判断,如:…
原文:零元学Expression Blend 4 – Chapter 21 以实作案例学习MouseDragElementBehavior 本章将教大家如何运用Blend 4内建的行为注入元件「MouseDragElementBehavior」--使物件拥有拖拉功能 ? 本章将教大家如何运用Blend 4内建的行为注入元件「MouseDragElementBehavior」--使物件有拖拉功能 ? 这麽说好了,当A物件被MouseDragElementBehavior寄生以後,A物件就会拥有Mo…
From Thinking in Java 4th Edition. 泛型实现了:参数化类型的概念,使代码可以应用于多种类型.“泛型”这个术语的意思是:“适用于许多许多的类型”. 如果你了解其他语言(例如: C++)中的参数化类型机制,你就会发现,有些以前能做到的事情,使用Java的泛型机制却无法做到. Java中的泛型需要与C++进行一番比较.了解C++模板的某些方面,有助于你理解泛型的基础.同事,非常重要的一点是:你可以了解Java泛型的局限性是什么,以及为什么会有这些限制.最终是要让你理解…
Java 实例 本章节我们将为大家介绍 Java 常用的实例,通过实例学习我们可以更快的掌握 Java 的应用. Java 环境设置实例 //HelloWorld.java 文件 public class HelloWorld { public static void main(String []args) { System.out.println("Hello World"); } } /* 接下来我们使用 javac 命令来编译 Java 文件,并使用 java 命令执行编译的文件…
本篇主要内容如下: 本篇文章已收纳到我的Java在线文档. Github 我的SpringCloud实战项目持续更新中 帮你总结好的锁: 序号 锁名称 应用 1 乐观锁 CAS 2 悲观锁 synchronized.vector.hashtable 3 自旋锁 CAS 4 可重入锁 synchronized.Reentrantlock.Lock 5 读写锁 ReentrantReadWriteLock,CopyOnWriteArrayList.CopyOnWriteArraySet 6 公平锁…
一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用126邮箱服务器,现在126邮箱服务器要求使用类似于QQ的独立密码进行客户端的验证(网页登陆不需要)) 第一步:连接到邮箱服务器 telnet smtp.126.com 25 第二步: ehlo aaa(任意字符串) 第三步:请求验证登录 auth login 第四步:输入使用Base64编码后的用户名…
一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现…
一.ServletContextListener  Method Summary  void contextDestroyed(ServletContextEvent sce)           Receives notification that the ServletContext is about to be shut down.  void contextInitialized(ServletContextEvent sce)           Receives notificati…
IO流分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意: a:如果我们没有明确说明按照什么分,默认按照数据类型分. b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流. 构造 FileOutputStream写出数据 FileOutputStream fos = new FileOutputStream("f.txt") fos.write("Hel…
正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章: 功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是邮箱,等等 示例: "[0-9]{6,12}"匹配规则:6到12位的数字,比如123456789就是true,12345就是false "1[3578][0-9]{9}"匹配规则:1开头,第二位是3578中的一个,后面九个任意数字,比如13345678912就是true…
InputStreamReader和OutputStreamWriter 是字节流通向字符流的桥梁:它使用指定的 charset 读写字节并将其解码为字符.InputStreamReader 的作用是将“字节输入流”转换成“字符输入流”.它继承于Reader.OutputStreamWriter 的作用是将“字节输出流”转换成“字符输出流”.它继承于Writer. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_21.html 更多内容请参考:j…
From Thinking in Java 4th Edition 持有对象 // Simple container example (produces compiler warnings.) // {ThrowsException} import java.util.*; class Apple { private static long counter; private final long id = counter++; public long id() { return id;} } c…
From Thinking in Java 4th Edition final 1. 对于基本类型,final使数值恒定不变 2. 对于对象引用,final使引用恒定不变,即不能指向别的对象,但指向的对象本身可以改变(The same for array in Java) import java.util.*; import static net.mindview.util.Print.*; class Value{ int i; // Package access public Value(i…
From Thinking in Java 4th Edition 内部类 public class Parcel1 { class Contents { private int i = 11; public int value { return i;} } class Destination { private String label; Destination(String whereTo) { label = whereTo; } String readLabel() { return l…
java中有很多集合,内部有各种的存储的方法,取出的方法也各不相同,那么有没有一种通用的方法来取出来呢? java提供的遍历集合元素的方法有两种: 1.for-each结构(增强型for循环) 格式: for(Object obj:collection)System.out.println(obj);//表示一行输出一个元素 用法举例: import java.util.ArrayList; public class Demo2 { public static void main(String[…
之前 manipulate 表里的数据,现在则是 manipulate 表本身. INDEX 创建多列构成的主键 自动增长的规定 查看上一次插入的自增 id 尽量用默认值替代 NULL 外键不可以跨引擎 添加字段与删除字段 & 定义外键 复杂表结构的修改 删除表与修改表名 非常工整的 . .模范脚本: CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT, cust_name ) NOT NULL , cust_address…
一.为什么使用泛型   泛型意味着编写的代码可以被很多不同类型的对象所重用.例如,我们不希望为存放String和Integer对象的集合设计不同的类.现在的ArrayList类可以存放任何类型的对象,但是在Java中增加泛型之前已经有了一个ArrayList类,它是使用继承来实现泛型的.这个ArrayList类只维护一个Object数组: public class ArrayList { private Object [] elementData ; public Object get (int…
一.概述 概念 UML简图 角色 根据下图得到角色 备忘录角色(Memento).发起人角色(Originator).负责人角色(Caretaker) 二.实践 使用白箱实现,给出角色的代码: 发起人 /** * 发起者 * * @author Administrator **/ public class Originator { /** * 发起者想要保存的状态 */ private String state; public String getState() { return state;…
基础概念 把对象等转为二进制进行传输的是序列化,反之为反序列化: 应用场景一般为读写文件,传输数据/接口调用: Externalizable和Serializable java的序列化方式有两种: Serializable是常用的方法,实现方法为 class User implements Serializable { private static final long serialVersionUID = -3226152074589523662L; ... } 实现接口,并且最好有序列化ID…
原文地址:http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html Introduction Welcome to the first tutorial on how to get started with Akka and Java. We assume that you already know what Akka and Java are and will now focus on the steps…
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客: www.how2playlife.com 这是一个Java8新增特性的总结图.接下来让我们一次实践一下这些新特性吧 Java语言新特性 Lambda表达式 Lambda表达式(也称为闭包)是整个Java 8发行版中最受期待的在Java语言层面上的改变,Lambda允许把函…
21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. /** * Definiti…
Java文档注释 Java支持三种注释方式.前两种分别是Ⅱ和/产*,第三种被称作说明注释,它以产开始,以*I结束.说明注释允许你在程序中嵌入关于程序的信息.你可以使用javadoc工具软件来生成信息,并输出到HTML文件中.说明注释,使你更加方便的记录你的程序信息. javadoc标签 @author @标识一个类的作者 @deprecated @指名一个过期的类或成员 @docRoot @指明当前文档根目录的路径 @exception @标志一个类抛出的异常 @inheritDoc @从直接父…
Java Iterator(迭代器) 如果需要使用iterator类需要从java.util包中引入它 Java Iterator不是一个集合,它是一种访问集合的方法,用于迭代ArrayList和HashSet等集合 迭代器it 的两个基本操作是next,hasNext和remove 调用it.next()会返回迭代器的下一个元素,并更新迭代器的状态 调用it.hasNext()用于检测集合中是否还有元素 调用it.remove()将迭代器返回的元素删除 集合获取一个迭代器用iterator()…
将Java数组中的元素前后反转.题目要求:已知一个数组arr = {11,12,13,14,15}用程序实现把该数组中的元素值交换,交换后的数组arr = { 15,14,13,12,11},并输出交换后的数组元素. package m; public class m { public static void main(String[] args) { // 创建数组 int[] arr = {11,12,13,14,15}; // 打印反转前数组 System.out.print("数组反转前…
目录 21.1 The g-formula for time-varying treatments 21.2 IP weighting for time-varying treatments 21.3 A doubly robust estimator for time-varying treatments 21.4 G-estimation for time-varying treatments 21.5 Censoring is a time-varying treatment Fine P…
一.水仙花数 1.方式一:这是我的思路,取各个位数的方式.我个人习惯于使用取模运算. public static List<Integer> dealNarcissiticNumberMethodOne( Integer startNum, Integer endNum) { List<Integer> resultList = new LinkedList<Integer>(); for (Integer i = startNum; i <= endNum; i…