java学习
文章平均质量分 82
醉耕
这个作者很懒,什么都没留下…
展开
-
IO操作-随机读取文件RandomAccessFile
RandomAccessFile类:实例支持对随机访问文件的读取和写入。常用方法:RandomAccessFile(File file, String mode) ,创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定。 RandomAccessFile(String name, String mode) , 创建从中读取和向其中写入(可选)的随机访问文件流,原创 2017-12-19 20:49:18 · 449 阅读 · 0 评论 -
java注解
一、注解 注解是什么?注解和注释字面上差不太多,但是注解不是提供代码功能的说明,而是实现程序功能的重要组成部分。注解是java代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。注解是JDK1.5的新特性。 二、基本注解 java为我们提供了三个基本注解,在java.lang包中。分别是用于标注注解的方法是重写父类的方法的@Override注解、用于提醒某个方法或成员原创 2018-01-22 15:30:24 · 267 阅读 · 0 评论 -
java枚举
一、为什么要有枚举? C语言作为编程语言的“鼻祖”,里面是有枚举的。java作为面向对象的语言,一开始在设计时想的是要抛弃枚举的,但是随着使用的人数逐渐增多,就不得不将枚举从新增加到java中。于是在JDK1.5中引入枚举。 为什么使用的人多了就得将枚举加入java中?举个例子:假如要定义周一到周日对应的数字,有的人想周一用1表示,但是有的人想周日用1表示。人少的情况下还好解决,可以一旦人多了就原创 2018-01-22 16:29:42 · 243 阅读 · 0 评论 -
集合框架-Map遍历
Map的遍历和Set、List略有不同。import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import java.util.TreeMap;public static void main(String[] args) { TreeMap r原创 2017-12-21 09:58:30 · 304 阅读 · 0 评论 -
多线程互斥synchronized
今天再次加深了对线程互斥的理解,整理代码,方便以后查看。public class ThreadSynchronized { public static void main(String[] args) { //静态方法不能调用内部类,静态方法是不用创建对象就可以访问的, //所以在使用静态方法的时候,可能获取不到内部类的信息,导致不能创建内部类对象原创 2018-01-15 20:44:18 · 327 阅读 · 0 评论 -
多线程之间的通信
再次学习,学会了多线程间通信的分析思路。希望对你有用。public class ThreadTi { //要求:子线程循环10次,父线程循环50次,子线程循环10次,父线程循环50次,如此循环100次 // 要注意:分析的思路,哪些循环是不可以打断的,就使用synchronized public static void main(String[] args) {原创 2018-01-15 20:49:18 · 254 阅读 · 0 评论 -
Dom4j解析XML
1、环境准备 要想使用Dom4j来解析xml文件,就先得有Dom4j对应的文件。 下载路径: 1.官网下载: http://www.dom4j.org/dom4j-1.6.1/ 2.dom4j是sourceforge.net上的一个开源项目,因此可以到http://sourceforge.net/projects/dom4j下载其最新版将下载完成的zip文件进行解压,然后将解压文件中的dom转载 2018-01-08 09:57:11 · 292 阅读 · 0 评论 -
XML学习笔记
概述XML(eXtensible Markup Language)全称可扩展标记语言。XML是跨平台的,这也是它为什么被广泛应用的原因。XML主要被用存储数据,系统配置和数据交换。语法1、 文档声明:只能位于xml的第一行,前面不能有空行或者注释。<?xml version="1.0" encoding="UTF-8" standalone="yes/no"?>version用来声明xml的版本,原创 2018-01-28 14:00:24 · 335 阅读 · 0 评论 -
jaxp解析xml
因为jaxp是sun公司推出的一个解析xml的技术,所以在解析xml时,不用像dom4j一样导入jar包。jaxp用到的东西都包含在jre中。使用jaxp的局限性较大,比如不能创建一个xml文件,只能读取已有的文件。 这里简单介绍jaxp对xml的CRUD操作。要操作的testBook.xml文件<?xml version="1.0" encoding="UTF-8" standalone="no原创 2018-01-28 15:01:38 · 424 阅读 · 0 评论 -
SAX解析XML
sax解析xml文档是边读边解的,解析时是按照提前设置好的事件处理方式来执行的。如果你在解析时,想回到前面的节点再次进行解析,对不起做不到。sax的解析方式就决定了它只能做读的操作,不能做修改、添加、删除的操作。 sun公司将sax解析的事件分为ContentHandler(内容事件),ErrorHandler(错误事件),DTDHandler(DTD约束事件),EntityResolver(实体原创 2018-01-28 17:40:28 · 274 阅读 · 0 评论 -
dom4j解析xml
准备阶段 dom4j作为解析xml的一把利器,学习使用dom4j是必须的。 要想使用dom4j解析xml,就得先准备好dom4j文件。 这里给出一个github的下载地址:https://dom4j.github.io/,在下载时要根据自己的jdk版本“量力而行”。如果地址失效了,可以百度、谷歌搜索。 下载解压后将dom4j对应的jar包加入到你的工程即可使用。 1、进入解压的文件中,复制原创 2018-01-28 19:21:01 · 264 阅读 · 0 评论 -
java--泛型
在jdk1.5之前,集合中可以装多种类型不同的元素,由于一些原因,在jdk1.5推出了泛型,用于在编译阶段限制放入集合中的元素为同一类型。对于没有使用泛型的集合又称为原始类型泛型。// 原始类型集合ArrayList arr = new ArrayList();arr.add("abc");arr.add(123);arr.add(false);// 使用泛型的集合ArrayList<St原创 2018-02-11 10:46:17 · 234 阅读 · 0 评论 -
javaWeb学习笔记--Cookie对象
一、概念 Cookie是会话技术的一种,还有一种是Session。 会话可以理解为用户打开一个浏览器,进行一系列的操作,然后关闭浏览器,这整个过程称之为会话。二、操作Cookie的常用方法Cookie(String name, String value):是cookie的构造方法。 public String getName():获取cookie的名称。 public Str原创 2018-03-03 11:57:42 · 583 阅读 · 0 评论 -
eclipes将打印到控制台的信息写入文件中
1,在目标文件空白处右键,选中Run as-> Run configurations 2,在弹出的窗口中,选择Common选项,并且确保右侧选中的文件是目标文件。 3,选中下面的Output File单选框,在后面的输入框中写入路径,点击Apply,点击Run。 4,运行目标文件,到指定路径查看文件。原创 2018-01-15 20:27:59 · 369 阅读 · 0 评论 -
Java虚拟机思维导图
背景在公司实习了一段时间,觉得不太适合这里。可能是心里想着去大厂,导致身在曹营心在汉。也可能是刚步入社会,尤其是程序员的行业,又碰巧赶上项目即将完工将要上线,对加班还是没有做足充分的准备,一时间多少有点不满。也可能是其他原因。不管怎么样吧,还是打算等到实习期结束就换公司,去追逐自己的梦想。大厂不好进,先不说知识面的广度,单是基础知识的深度这一关就拦下了大量的人。所以我打算先加深对java的认识,...原创 2018-10-22 10:03:50 · 826 阅读 · 1 评论 -
java并发编程思维导图
说在前面的话这里接着上篇的 Java虚拟机思维导图 ,又总结了并发相关的知识点做成了思维导图,这里把它贴出来方便后期的复习。不过没有像 虚拟机 那篇文章详细划分各个部分。闲话不多说,直接贴图。基础部分这个部分列举了并发编程基础,这部分都是比较简单的知识。只不过引入了一些新的知识,新引入的知识会在提升部分进行具体的说明,这里就不过多的介绍。提升部分线程的创建方式除了有常见的继承Thr...原创 2018-11-19 16:10:48 · 3380 阅读 · 4 评论 -
java nio 思维导图
简介java NIO 是从JDK4后引入的新的IO API,可以替代标准的IO。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。好了话不多说,先贴张图。接下来我会简单的说说思维导图的每个部分,至于具体的还是要各位去研究。IO和NIO的区别我们总的知道学NIO 的目的是什么?为什么要学N...原创 2018-11-22 18:51:00 · 1663 阅读 · 2 评论 -
spring源码分析(一)
简介Spring 是一个轻量级的企业级应用开发框架,于 2004 年发布了 1.0 版本。经过十几年的迭代,现在的 Spring 框架已经非常成熟了。Spring 包含了众多模块,包括但不限于 Core、Bean、Context、AOP 和 Web 等。在今天,我们完全可以使用 Spring 所提供的一站式解决方案开发出我们所需要的应用。作为 Java 程序员,我们会经常和 Spring 框架打...原创 2018-12-13 19:59:59 · 526 阅读 · 0 评论 -
反射-getFields和getDeclaredFields的区别
先创建一个类在另一个测试代码中原创 2017-12-27 15:46:20 · 460 阅读 · 0 评论 -
反射
一、反射的概念 Java反射(Reflection)就是java程序在运行时,可以加载、探知、使用编程期间完全未知的类。也就是说,java程序可以加载一个运行时才知道的类,获得类的完整构造方法等。这个功能就称为Java的反射机制。作为程序员,编写简单的Java程序时,使用反射机制的机会不多。反射机制一般在框架中使用的较多,因为框架要适用更多的情况,对灵活性要求比较高。二、Class类 在J原创 2017-12-25 21:44:33 · 303 阅读 · 0 评论 -
多线程
一,进程与线程进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。换句话说,就是“正在运行的程序”。程序:是一段静态的代码,是应用程序执行的蓝本。线程:是进程的一个实体,是CPU调度和分牌的基本单位,是比进程更小的能独立运行的基本单位。线程自己不拥有系统的资源,质拥有一点在运行中的必不可少的资源(如程序计数器,一组寄存器和栈),但是原创 2017-12-18 16:50:12 · 296 阅读 · 0 评论 -
IO操作-ObjectInputStream演示
对象流:简单来说就是讲对象作为流进行读写。该对象的类必须要实现Serializable接口,才能使用对象流操作,也叫能序列化的类。使用ObjectInputStream或ObjectOutputStream来装取对象。常见的String,一些集合类也都是有实现Serializable接口的。序列化类:/一个简单类实现Serializable接口//类中没有被static或原创 2017-12-19 20:41:20 · 370 阅读 · 0 评论 -
IO操作-BufferedInputStream,InputStreamReader,DataInputStream基本演示
缓冲流:前面的字节流和字符流都没有使用缓冲区,这就意味着,每次的读写操作都要交给操作系统来处理。这样的做法可能会对系统的性能造成很大的影响,因为每次访问操作都可能会引发磁盘硬件的读写或网络的访问,这些磁盘硬件读写或网络访问会占用大量的资源,影响效率。缓冲流是一种装饰器类,目的是让原字节流,字符流新增缓冲的功能。常使用BufferedInputStream或BufferedOutputStrea原创 2017-12-19 20:33:28 · 2783 阅读 · 0 评论 -
IO操作-字节流字符流基本演示
字节流一般适用于操作二进制文件,如(图片,文件等)。所有字节流类都继承自InputStream或OutputStream两个抽象类。InputStream类:FileInputStream子类,ByteArrayInputStream子类,System.in。。。OutputStream类:FileOutputStream子类,ByteArrayOutputStream子类。。。Inp原创 2017-12-19 20:26:36 · 273 阅读 · 0 评论 -
IO操作-listFiles的Filter和FilenameFilter的区别及list与listFiles区别
方法原型:String[] list() , 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 String[] list(FilenameFilter filter) ,返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。 File[] listFiles() ,返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的原创 2017-12-19 20:04:40 · 1587 阅读 · 0 评论 -
IO操作-知识概要
一,File类该类提供了管理文件或目录的方法,File类的实例表示系统中的一个文件或者文件夹。常用方法:boolean createNewFile() ,当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 boolean delete() ,删除此抽象路径名表示的文件或目录。 boolean exists() ,测试此抽象路径名表示的文件或目录是否存在原创 2017-12-19 19:53:25 · 383 阅读 · 0 评论 -
集合框架-for、foreach、Iterator三种遍历方法
演示的是List的三种遍历方法。Set,Map虽然有差别,但是大体还是相同的。import java.util.ArrayList;import java.util.Iterator;public static void main(String[] args) { ArrayList arr = new ArrayList<>(); arr.add("1"); arr.add原创 2017-12-21 10:23:04 · 418 阅读 · 0 评论 -
集合框架-HashSet对象判重
HashSet是通过equals方法以及hashcode方法来判断对象是否重复。HashSet类对象是否重复判断。通过重写equals方法实现。 import java.util.HashSet;import java.util.Iterator;class Student { public String name; public int age; public Student原创 2017-12-21 10:16:59 · 491 阅读 · 0 评论 -
集合框架-Comparator和Comparable的区别
Comparator也叫外部比较器,常在使用Collections工具类进行集合排序的时候使用。外部比较器Comparator可以理解为一个专用的比较器,当集合中的对象不支持自比较或者比较的功能不能满足程序的需求时,可以写一个比较器来完成两个对象之间的比较。import java.util.Collections;import java.util.Comparator;import jav原创 2017-12-21 10:02:45 · 565 阅读 · 0 评论 -
集合框架-泛型、装箱拆箱
泛型:是JDK1.5的新特性。在之前使用集合的时候,装入集合的各种类型的对象都被当做Object对待。失去了自己的类型,而从集合中取出对象的时候需要进行类型转换,效率低下且容易出错。TreeMap rm = new TreeMap<>();//装入集合的元素必须是String和Integer类型的,不然编译器会报错的装箱、拆箱:也是JDK1.5的新特性之一。自动拆箱、装箱,其目的原创 2017-12-21 09:26:18 · 495 阅读 · 0 评论 -
集合框架
一,集合 集合,也称为容器,它可以将一系列元素组合成一个单元,用于与存储,提取,管理数据。JDK提供的集合API都在java.util包内。Java集合的框架主要分在两大部分,一部分实现了Collection接口,该接口定义了存取一组对象的方法,其子接口Set和List分别定义了存取方式;另一部分是Map接口,该接口定义了存储一组“键(key)值(value)”映射对的方法。原创 2017-12-21 10:32:20 · 256 阅读 · 0 评论 -
异常
一,异常的概念 在程序的运行时候,经常会出现一些意外的情况,这些意外会导致程序出错或者崩溃,从而影响正常的执行。Java中,将这些程序意外称为异常,出现异常时的处理称为异常处理。当异常发生时,系统会将异常封装成一个异常对象抛出。当JVM遇到异常时就会自动停止运行。 二,异常的分类 可以发现,所有的异常都继承自java.lang.Throwable类,Throwable类有两个直接的子类:翻译 2017-12-21 16:22:50 · 282 阅读 · 0 评论 -
异常-多个catch块
对于有多个catch块时,通常按照“从小到大”的顺序捕获异常,这样才能按照保证逐层捕获,从而避免对父类的大的异常进行了捕获,导致对子类的小的异常无法进行捕获的情况。 public static void main(String[] args) { fun2(); } //捕获异常的顺序不正确时,这样写编译就通不过的 public static void f翻译 2017-12-21 16:37:23 · 850 阅读 · 0 评论 -
异常-常见的异常
在编程中异常处理会被频繁的使用,所以有必要知道一些常见的异常。 NullPointException:空指针异常,属于运行时异常。简单来说就是调用了未经初始化的对象或者不存在的对象,或者是访问或修改null对象的属性或方法。 ClassNotFoundException:找不到类异常。出现这种情况一般有三种原因:一是的确不存在该类;二是开发环境进行了调整,例如类的目录结构发生了变化,编译、运行路翻译 2017-12-21 17:01:29 · 382 阅读 · 0 评论 -
异常-catch中的return
java在异常处理机制中对于这个问题的处理是,当try或catch中有return语句时,先执行try或catch语句块中return前面的代码,在执行finally语句中的代码,之后在返回。所以try或catch中有return也照样会执行finally语句块。 public static void main(String[] args) { try {翻译 2017-12-21 17:10:22 · 3502 阅读 · 1 评论 -
网络编程
一,网络基础 网络通信协议: TCP/IP协议:TCP(Transmission Control Protocol,传输控制协议),IP(Internet Protocol,网际协议)。HTTP协议:HTTP(Hypertext Transfer Protocol,超文本传输协议)。FTP协议:FTP(File Transfer Protocol,文件传输协议原创 2017-12-18 13:28:26 · 251 阅读 · 0 评论 -
spring源码分析(二)
本篇文章接着上篇:spring源码分析(一) 继续分析剩下的部分。为了观看方便,这里就再次贴上总图:AOP部分AOP入口这一小节,简单的说了AOP是在哪里创建代理对象的以及要使用哪种方式来创建代理对象。入口方法(wrapIfNecessary)就是在bean初始化后调用的后置处理器(ProxyProcessorSupport)中执行的。这里对这个方法的执行进行了简单的分析。筛选合适的通...原创 2018-12-13 20:00:37 · 554 阅读 · 0 评论