![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 69
1313123131312
这个作者很懒,什么都没留下…
展开
-
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队转载 2018-03-05 15:24:58 · 134 阅读 · 0 评论 -
Java 第五天 笔记
1 垃圾回收机制 (1)程序员无权调用垃圾回收器 (2) 收集并删除未引用的对象。可以通过调用"System.gc()"来触发垃圾回收,但并不保证会确实进行垃圾回收。JVM的垃圾回收只收集哪些由new关键字创建的对象。所以,如果不是用new创建的对象,你可以使用finalize函数来执行清理。2 构造函数 (1)构造方法的作用: 构造方法...原创 2018-08-29 11:18:11 · 161 阅读 · 0 评论 -
Java 第六天 笔记
1 抽象类(意义在于把方法的设计和实现分离) 抽象类是一种模板模式,抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展。通过抽象类,可以避免子类设计的随意性,通过抽象类,我们可以做到严格的限制子类的设计,使得子类之间更加通用 要点: 有抽象方法的类只能定义为抽象类;抽象类不能实例化,既不能用new来实例化抽象类;抽象类可以包含属性方法,构造方法,但是构...原创 2018-09-07 22:03:59 · 156 阅读 · 0 评论 -
Calendar.getInstance()中的getInstance()函数
getInstance()是Calendar提供的一个类方法,它的作用是获得一个Calendar类型的通用对象,getInstance()将返回一个Calendar的对象。还有一点关于 为什么不用 Calendar c=new Calendar();原因是:Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的...转载 2018-09-04 10:47:26 · 4764 阅读 · 0 评论 -
Java 第九天 笔记
1 File类详解(1)构造函数 File f = new File("文件路径") File f = new File("parent","child")(2)创建一个文件夹 //在工作空间目录下创建a.txt的文件夹 File f = new File("a"); f.mkdir(); 在G:\路径下创建一个a.txt的文件夹...原创 2018-09-11 23:59:35 · 179 阅读 · 0 评论 -
Java 第七天 笔记
1 二维数组数组的数组---二维数组的每一个元素是一个一维数组定义格式数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][每个一维数组的长度];int[][] arr = new int[3][5];---定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数arr[0]---下标为0的位置上的一维数组arr[1...原创 2018-09-07 22:04:21 · 257 阅读 · 0 评论 -
Java 第八天 笔记
1 常用类 基本类型的包装类 : java 并不是纯面向对象的语言。Javas是一个面向对象的语言,但是Java中的基本数据类型却不是面向对象的。但是我们实际使用中经常将基本数据转化为对象,便于操作,比如:集合的操作,这时我们就行需要将基本类型转化为对象。 Java中的基本类型功能简单,不具备对象的特性,为了使基本类型具备对象的特性,所以出现了包装类,就可以像操作对象一样操作基本...原创 2018-09-07 22:02:32 · 184 阅读 · 0 评论 -
Java异常之throws和throw 以及异常使用注意的原则
一.使用throws抛出异常如果在当前方法不知道该如何处理该异常时,则可以使用throws对异常进行抛出给调用者处理或者交给JVM。JVM对异常的处理方式是:打印异常的跟踪栈信息并终止程序运行。 throws在使用时应处于方法签名之后使用,可以抛出多种异常并用英文字符逗号’,’隔开 e.g.1 public void throwsTest() throws ExceptionClass1,...转载 2018-09-03 16:49:15 · 1256 阅读 · 0 评论 -
Java String类中的intern()方法
今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法。所以今天看了一下。个人觉得给String类中加入这个方法可能是为了提升一点点性能,因为从常量池取数据比从堆里面去数据要快一些。(个人感觉) API上的那几句关于这个方法,其实总结一句就是调用这个方法之后把字符串对象加入常量池中,常量池我们都知道他是存在于方法区的,他是方法区...转载 2018-09-03 19:57:09 · 136 阅读 · 0 评论 -
严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
这个问题主要是因为你的端口号已被其他进程占用发现被Myeclipse自带的服务器占用了 所有得disable 自带服务器原创 2018-09-16 19:15:32 · 2931 阅读 · 0 评论 -
Java字符串split方法的小陷阱
今天在写一个Java字符串切分程序时,发现切分后的计数一直有问题,调了半天才找到原因。。。下面先来看一个问题:有字符串str=“string split test” ,使用String类的split方法,根据空格切分后的字符串数组有多少个元素?我们可以用下面的程序来测试: String str = "string split test";String[] result = str.s...转载 2018-09-13 09:07:02 · 456 阅读 · 0 评论 -
栈与队列的异同
栈(Stack)和队列(Queue)是两种操作受限的线性表。(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足“一对一”的逻辑关系。“一对一”的逻辑关系指的是对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。)这种受限表现在...转载 2018-09-13 09:43:12 · 368 阅读 · 0 评论 -
Java 第三天 笔记
1 方法(函数)(1) 什么是方法呢?方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 (2)方法的优点1. 使程序变得更简短而清晰。 2. 有利于程序维护。 3. 可以提高程序开发的效率。 4. 提高了代码的重用性。(3)方法的命名规则 .1方法的名字的第一个单词应以小写...原创 2018-07-31 15:11:47 · 198 阅读 · 0 评论 -
Java 第四天 笔记
1 面向对象 (1)面向过程与面向对象编程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了; 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过...原创 2018-08-04 09:01:48 · 176 阅读 · 0 评论 -
Java 第二天 笔记
1 变量 Java 是一种强类型的语言,每一个变量都必须声明 Java 变量是程序中最基本的存储单元,其要素包括 变量名,变量类型,作用域 变量在使用前必须对其声明,只有在变量声明以后才可以为其分配相应的长度的存储单元,声明格式为“: type varname [=value],[value1],[value2] ; 注意事项: 每一个变量都有类型,类型可...原创 2018-07-28 23:07:31 · 203 阅读 · 0 评论 -
java中==与equel的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。 equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。 ==比较的是2个对象的地址,而equals比较的是2个对象的内容。...转载 2018-05-10 21:00:21 · 162 阅读 · 0 评论 -
hashCode与equals的作用与区别及应当注意的细节
最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖hashCode,现在发现这是埋下了很多潜在的Bug!今天就来说一说hashCode和equals的作用。 先来试想一个场景,如果你想查找一个集合中是...转载 2018-05-12 17:28:59 · 137 阅读 · 0 评论 -
JAVA字符串转日期或日期转字符串
文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进 来! 用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " ); 这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是...转载 2018-05-13 14:32:22 · 2990 阅读 · 0 评论 -
StringTokenizer的使用
Pattern.split替代String.split http://www.cnblogs.com/gnivor/p/4386978.htmlStringTokenizer是一个用来分隔String的应用类1. 构造函数。1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)...转载 2018-04-28 21:46:19 · 118 阅读 · 0 评论 -
java.io.File类中mkdir()与mkdirs()区别
在Java中对文件进行操作时常常用到java.io.File.mkdir()和java.io.File.mkdirs()两个方法来创建一个目录(文件夹),这两个方法非常相似,都是无参数且返回值都为boolean类型的方法,都是用于创建指定路径名称对应的目录,但二者主要区别如下:java.io.File.mkdir():只能创建一级目录,且父目录必须存在,否则无法成功创建一个目录。java.io.F...转载 2018-05-30 09:17:31 · 237 阅读 · 0 评论 -
随机修改文件名称
起因:保存的文件太多合并的时候文件名相同会覆盖所有需要一个可以全部重命名的工具。注意: 在修改文件名称的过程中要指定文件存放的位置否则所有文件会归到项目路径下面。package test;import java.io.File;import java.util.UUID;public class UpdateFileName { public static void main(String[] a...转载 2018-05-30 10:45:13 · 973 阅读 · 0 评论 -
部分修改文件名称
import java.io.File;public class ChangeWenJianName { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub getFileName(); } ...原创 2018-05-30 10:46:32 · 543 阅读 · 0 评论 -
指定文件名修改文件名称
import java.io.File;/* * 文件名全部修改*/public class UpdateFileName { public static void main(String[] args) { File root = new File("C:/Users/Documents/军事3"); try { renameFile(root); } catch (Exception...原创 2018-05-30 10:47:42 · 5668 阅读 · 0 评论 -
Java实现按列输出TXT文件内容
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class Test2 { public static void main(String[] args) throws IOException { File f = new Fil...原创 2018-07-05 22:14:33 · 2717 阅读 · 0 评论 -
java中的ClassLoader详解
ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j...转载 2018-07-06 20:28:02 · 164 阅读 · 0 评论 -
位运算总结(按位与,或,异或)
按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011& 0000 0101 = 00000001 因此,3&5的值得1。 另,负数按补码形式参加按位与...转载 2018-07-07 15:37:40 · 703 阅读 · 0 评论 -
Java 第一天 笔记
1 Java为什么可以流行 (1)互联网的爆发式发展 (2)互联网上的 电子产品,软件环境差异较大,需要一个跨平台的 语言2 Java的核心优势 跨平台3 Java各版本和体系构架 (1 )各个版本 Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发: A:Java SE...原创 2018-07-28 17:46:09 · 189 阅读 · 0 评论 -
如何多个请求运用一个servlet
方法一 jsp部分页面为 : <a href = "customerServlet?method=add">Add</a> <a href = "customerServlet?method=query">Query</a> <a href = "customerServlet?method=delete"&g...原创 2019-07-30 17:09:06 · 303 阅读 · 0 评论