java基础
zcywell
newer
展开
-
java自定义异常以及throws和throw的区别
t首先看一下throws和throw的区别:throws是用来声明一个方法可能抛出的所有异常信息throw则是指抛出的一个具体的异常类型。通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法;throw则需要用户自己捕原创 2012-01-11 16:33:34 · 7838 阅读 · 1 评论 -
CountDownLatch理解
CountDownLatchCountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包下。CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在...原创 2019-03-28 17:56:48 · 364 阅读 · 0 评论 -
Java并发三特性-原子性、可见性和有序性概述及问题示例
本章主要学习Java并发中的三个特性:原子性、可见性和有序性。在Java并发编程中,如果要保证代码的安全性,则必须保证代码的原子性、可见性和有序性。本章的很多概念可以参考:Java并发11:Java内存模型、指令重排、happens-before原则1.原子性(Atomicity)1.1.原子性定义原子性:一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。...转载 2019-03-29 15:53:51 · 201 阅读 · 0 评论 -
Java程序发生异常就挂了吗?
Java程序发生异常就挂了吗?为了验证程序不会挂,我写了个例子给大家看看。 测试代码: import java.io.File;import java.io.IOException;/** * Java程序发生异常就挂了吗?* */ publicclass TestException { publicstaticvo原创 2012-04-12 11:25:20 · 1718 阅读 · 0 评论 -
Exception in thread "main" java.lang.NoClassDefFoundError错误信息
1、你的文件名对吗?JAVA要求你的文件和你的类名严格对应的。比如 public class HelloWorld{ .....那么文件名一定只能是HelloWorld.java,看仔细了!2、你的程序中有main方法吗?参数什么的对吗?main方法的声明应该是这样子的:public static void main(String[] args) 事实上如果你用开发转载 2012-02-06 14:42:29 · 1079 阅读 · 0 评论 -
编写一个截取字符串的函数
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6, 应该输出为"我ABC"而不是"我ABC+汉的半个"。 import java.io.UnsupportedEncodingException;/** * 截取的要点: * 1.首先原创 2012-02-03 17:23:25 · 1968 阅读 · 0 评论 -
ArrayList和Vector线程安全理解
两个线程操作同一个ArrayList变量,那么一个线程这一时刻读的数据可能在下一刻要改变。一般在类似于下面的情景下考虑线程安全的问题:ArrayList products=new ArrayList ();products用来存放生产出来的产品。现在假设:有3个消费者线程,2个生产者线程。每个生产者线程生产出一个产品,执行products.add(new Product()原创 2012-02-01 14:24:54 · 7085 阅读 · 1 评论 -
深入Java核心 Java内存分配原理精讲
Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细介绍一下Java在内存分配方面的知识。一般Java在内存分配时会涉及到以下区域:◆寄存器:我们在程序中无法控制◆栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中◆堆:存放用new产生的数据◆静态域:存转载 2012-01-31 10:15:25 · 502 阅读 · 0 评论 -
接口和抽象类的区别
接口和抽象类的区别1.抽象类可以有普通的成员变量而接口不可以有,2.抽象类可以包含非抽象的普通方法而接口包含的都是抽象方法,即Java接口比Java抽象类更抽象化。3.抽象类可以有构造方法而接口不可以有。4.一个类可以实现多个接口但只能实现一个抽象类原创 2012-01-10 15:33:23 · 760 阅读 · 0 评论 -
Java 8 stream的详细用法
一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。特点:1 . 不是数...转载 2019-09-06 10:07:47 · 331 阅读 · 0 评论