try

Netty服务端的启动源码分析

∥☆過路亽.° 提交于 2020-02-05 02:29:46
ServerBootstrap的构造: 1 public class ServerBootstrap extends AbstractBootstrap<ServerBootstrap, ServerChannel> { 2 private static final InternalLogger logger = InternalLoggerFactory.getInstance(ServerBootstrap.class); 3 private final Map<ChannelOption<?>, Object> childOptions = new LinkedHashMap(); 4 private final Map<AttributeKey<?>, Object> childAttrs = new LinkedHashMap(); 5 private final ServerBootstrapConfig config = new ServerBootstrapConfig(this); 6 private volatile EventLoopGroup childGroup; 7 private volatile ChannelHandler childHandler; 8 9 public ServerBootstrap() { 10 } 11 ...... 12

Spring中的IoC(4)

混江龙づ霸主 提交于 2020-02-04 18:21:16
Spring中的IoC(4) 基于xml的IoC案例 public interface AccountDAO { /** * 查询所有 * @return */ List < Account > findAllAccount ( ) ; /** * 通过id查询所有 * * @param id * @return */ Account findAccountById ( int id ) ; /** * 保存数据 * @param account */ void saveAccount ( Account account ) ; /** * 修改 * @param account */ void updateAccount ( Account account ) ; /** * 通过id删除 * @param id */ void deleteById ( int id ) ; } public class AccountDAOImpl implements AccountDAO { private QueryRunner runner ; public void setRunner ( QueryRunner runner ) { this . runner = runner ; } @Override public List < Account > findAllAccount

Java学习45:抛出异常

纵饮孤独 提交于 2020-02-04 13:39:48
我们在SixthDemo项目中的src目录下创建一个新的包,名为com.sixth.throws_exception,并创建Java文件Demo02.java 异常的传播 当某个方法抛出了异常时,如果当前方法没有捕获异常,异常就会被抛到上层调用方法,直到遇到某个try … catch被捕获为止: public class Demo02 { public static void main(String[] args) { try { process1(); } catch (Exception e) { e.printStackTrace(); } } static void process1() { process2(); } static void process2() { Integer.parseInt(null); // 会抛出NumberFormatException } } 通过printStackTrace()可以打印出方法的调用栈,例如上图打印的就是我们的报错信息,注意这里是打印出的报错信息,而不是程序自己报错。 printStackTrace()对于调试错误非常有用,上述信息表示:NumberFormatException是在java.lang.Integer.parseInt方法中被抛出的,调用层次从上到下依次是: main()调用process1();

Java学习43:Java的异常

∥☆過路亽.° 提交于 2020-02-04 03:15:01
从这一章开始,我们学习Java的另一个重要知识,Java里面的异常,以及如何捕获,打印。 首先关闭当前项目,左上角点击file,close project,然后创建一个新的项目,名字叫做SixthDemo。然后创建Java的包,名为com.sixth.error,然后创建一个Java文件,名为Demo01.java 在计算机程序运行的过程中,总是会出现各种各样的错误。 有一些错误是用户造成的,比如,希望输入一个int类型的年龄,但是用户输入的是abc: // 假设用户输入了abc: String s = "abc"; int n = Integer.parseInt(s); // NumberFormatException! 程序想要读取某个文件的内容,但是用户已经把它删除了: // 用户删除了该文件: String t = readFile("C:\\abc.txt"); // FileNotFoundException! 还有一些错误是凭缘分碰到的,而且永远无法避免。例如: 网络断开,连接不到服务器 内存耗尽,程序崩溃 用户点“打印”,但是你没有外接打印机 … 所以,一个健壮的程序必须处理各种各样的错误。 所谓错误,就是程序调用某个函数的时候,如果失败了,就表示出错。 调用方如何获知调用失败的信息?有两种方法: 方法一:约定返回错误码。 例如,处理一个文件,如果返回0,表示成功

java实现文件拷贝的七种方式

一个人想着一个人 提交于 2020-02-04 02:41:00
文章目录 1. 通过字节流实现文件的拷贝 2. 通过字符流实现文件拷贝 3. 通过字节缓冲流实现文件拷贝 4. 通过字符缓冲流拷贝文件 5. 通过JAVA NIO 非直接缓冲区拷贝文件 6. 通过JAVA NIO 直接缓冲区拷贝文件 7. 通过JAVA NIO 通道传输拷贝文件 使用示例 1. 通过字节流实现文件的拷贝 /** * 通过字节流实现文件的拷贝 * @param sourcePath 源文件路径 * @param targetPath 目标文件路径 */ public static void copyFileByStream(String sourcePath,String targetPath){ //源文件路径 File source = new File(sourcePath); //目标文件路径 File target = new File(targetPath); //如果源文件不存在则不能拷贝 if(!source.exists()){ return; } //如果目标文件目录不存在则创建 if(!target.getParentFile().exists()){ target.getParentFile().mkdirs(); } try { //实现文件的拷贝 InputStream inputStream = new FileInputStream

Java 9新特性

泪湿孤枕 提交于 2020-02-04 00:30:35
1、jdk 目录结构 JDK9 具体目录结构如下所示: bin: 该目录包含所有的命令。 conf: 包含用户可以编辑的配置文件,例如以前位于 jre\lib 目录中的.properties 和 .policy 文件。 include: 包含一些编译本地代码时使用的 C/C++头文件。 jmods: 包含 JMOD 格式的平台模块,创建自定义运行映射时需要它。 legal: 包含法律声明。 lib: 包含非 Windows 平台上动态链接的本地库,其子目录和文件不应由开发人员直接编辑或使用。Windows 平台的动态链接库直接放在了 bin 目录下。注:JDK9 目录中不再有 jre 子目录,以前 JDK 和 JRE 是分开的,二者主要区别在于 JRE 只提供运行环境,而 JDK 额外提供了 Java 编译器。 2、模块化 module-info.java:该文件必须位于项目的根目录中。该文件用于定义模块需要什么依赖,以及那些包被外部使用。 exports:控制着那些包可以被其他模块访问到,所有不被 exports 的包默认都被封装在模块里面不被外界所使用。 requires:指明对其他模块的依赖。 3、JShell JShell 是 Java 的交互式命令行。输入/help 查看帮助。 4、多版本兼容 jar 使用 javac、jar 等命令可以以任意版本编译、打包 Java

[C++系列] 71. 异常

纵饮孤独 提交于 2020-02-04 00:07:23
文章目录 1. C 语言传统处理错误的方式 2. C++ 异常概念 3. 异常的使用 3.1 异常的抛出和捕获 3.2 异常的重新抛出 3.3 异常安全 3.4 异常规范 4. 自定义异常体系 5. C++ 标准库的异常体系 6. 异常的优缺点 7. 总结 1. C 语言传统处理错误的方式 传统的错误处理机制: 终止程序,如 assert ,缺陷:用户难以接受。如发生内存错误,除 0 错误时就会终止程序。 返回错误码 ,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码 放到 errno 中,表示错误 C 标准库中 setjmp 和 longjmp 组合。这个不是很常用,了解一下 实际中 C 语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误。 2. C++ 异常概念 异常是一种处理错误的方式, 当一个函数发现自己无法处理的错误时就可以抛出异常, 让函数的直接或间接的调用者处理这个错误 。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个 catch 进行捕获。 try: try 块中的代码标识将被激活的特定异常,它后面通常跟着一个或多个 catch 块。

异常

a 夏天 提交于 2020-02-03 17:53:58
Throwable类 两个子类 子类1:Error修改代码,运行时期异常 RuntimeException等同于Error 子类2:Exception编译器异常 异常抛给调用者 异常对象抛给虚拟机之后 1.终止程序 2.将异常对象,异常信息,异常位置,以红字打印在控制台 3.不需要throws或者捕获异常 throw 创建异常并抛出throw new 异常类名(参数); throws 格式:修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2… { } 捕获异常格式: try { //需要被检测的语句。 } catch(异常类 变量) { //参数。 //异常的处理语句。 e.printStackTrace();//红字打印 } finally { //一定会被执行的语句。 } 并且若catch中的多个异常之间有子父类异常的关系,那么子类异常要求在上面的catch处理,父类异常在下面的catch处理。 1、当父类方法异常时,子类重写父类的方法,可以抛异常,也可以不抛异常 如果抛异常,抛出的异常必须小于等于父类异常 2、如果父类方法没有抛异常,子类重写父类的方法,也不能抛异常 如果该方法中调用了声明异常的方法,则只能try-catch处理 异常中的方法 getMessage方法:返回该异常的详细信息字符串,即异常提示信息 toString方法

Java网络编程技术1

懵懂的女人 提交于 2020-02-03 16:08:40
1. Java网络编程常用API 1.1 InetAddress类使用示例 1.1.1根据域名查找IP地址 获取用户通过命令行方式指定的域名,然后通过InetAddress对象来获取该域名对应的IP地址。当然,程序运行时,需要计算机正常连接到Internet上。 例1. 根据域名查找IP地址 package Net; import java.net.InetAddress; import java.net.UnknownHostException; public class GetIP { public static void main(String[] args) { try { InetAddress ad = InetAddress.getByName(args[0]); //ad.getHostAddress()方法获取当前对象的IP地址 System.out.println("IP地址为:"+ad.getHostAddress()); } catch (UnknownHostException e) { e.printStackTrace(); } } } 想获取网易的IP地址,就应该输入:java GetIP www.163.com 例2. 获取本机的IP地址。 package Net; import java.net.*; public class GetMyIP {

Java读取、写入、处理Excel文件中的数据(转载)

血红的双手。 提交于 2020-02-03 08:37:50
原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Excel会有帮助。 在开始进行Java读写Excel前,我们需要先下一个jxl的jar包,这个jar包中提供了相关读写Excel的方法,在百度里所搜一下jxl.jar下载就会出现很多下载地址了,这里不再累述。随后我们将jxl.jar放到classpath下或者在工程的buildpath中添加jxl.jar后,便可以开始Java读写Excel的神秘之旅了。 第一章 Java读取Excel数据 首先,创建一个xls文件(如:jxltest.xls),然后在文件中添加一些数据,Excel文件创建完成后,我们便可以开始写代码读取了: 代码如下: package jxl.zhanhj; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff