![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习笔记
m_target
这个作者很懒,什么都没留下…
展开
-
AQS源码解读
AQSpublic abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { private static final long serialVersionUID = 7373984972572414691L; /** * Creates a new {@code AbstractQ原创 2020-10-21 18:55:08 · 253 阅读 · 0 评论 -
java XML 约束
分为:DTD约束Schema约束: 1.是基于DTD的替代者 2.描述XML文档的结构使用:1.创建 XML schema File 文件<?xml version="1.0" encoding="UTF-8"?><schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ww...原创 2018-05-28 19:42:59 · 449 阅读 · 0 评论 -
java IO主要字节流和字符流,以及继承关系
1.字节缓冲区的使用(提高效率,可以保护磁盘)(主要使用FileInputStream 类和FileOutputStream 类)FileInputStream in= new FileInputStream("e:\\source.txt"); FileOutputStream out = new FileOutputStream("e:\\target.txt"); byte[]...原创 2018-05-24 14:10:02 · 2174 阅读 · 0 评论 -
java xml解析之dom解析
java语言本身支持DOM,可以直接查找属性与 子节点,过程大致如下:1、通过工厂类创建对象,可以通过该对象创建文本对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();2.通过工厂类的对象(dbf )创建文档对象,该对象可以映射操作xml文件DocumentBuilder docum = dbf.newDocum...原创 2018-05-30 14:33:02 · 208 阅读 · 0 评论 -
java xml解析之DOM4J解析
DOM4J解析大致分为几步:1.创建SAXReader 对象。SAXReader sax = new SAXReader();2.通过SAXReader对象使用read()方法读取文档。Document doc=sax.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("MyXML/Student....原创 2018-05-30 16:02:17 · 317 阅读 · 0 评论 -
Java xml解析之JDom解析
该解析方法与dom4j解析 比较类似同样需要使用第三方jar包,大致有以下步骤:1.创建SAXBuilder 对象。SAXBuilder sax = new SAXBuilder();2.通过SAXBuilder 对象创建文档对象Documentdoc=sax.build(Thread.currentThread().getContextClassLoader().getResourceAsStr...原创 2018-05-30 16:44:59 · 291 阅读 · 0 评论 -
java XML解析之sax解析
1.一个类(例如MyDefaultHandler)继承DefaultHandler类2.重写五个方法:startDocument()//该方法第一个执行,只执行一次startElement(String uri, String localName, String qName, Attributes att)//该方法会获取每一个标签characters(char[] ch, int start, ...原创 2018-05-31 16:41:55 · 229 阅读 · 0 评论 -
java XML解析之XPath解析
1.实例化DocumentBuilderFactory对象,该对象帮助创建DocumentBuilder对象,用于解析。DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//实例化DocumentBuilderFactory对象DocumentBuilder bulider = dbf.newDocumentBuil...原创 2018-05-31 17:00:56 · 6635 阅读 · 0 评论 -
java JDOM、DOM、 DOM4J、 SAX四种解析的特点总结
DOM解析: 优点:整个文档树都在内存当中,便于操作;支持删除、修改、重新排列等多功能。 缺点:将整个文档调入内存(经常包含大量无用的节点),浪费时间和空间。 使用场合:一旦解析了文档还需要多次访问这些数据,而且资源比较充足(如内存、CPU等)。JDOM解析: 优点: 1、使用具体类而不是接口,简化了DOM的API。 2、大量使用了Java集...转载 2018-05-31 17:08:14 · 1039 阅读 · 0 评论 -
java xml解析核心代码
DOM解析 //使用工厂类创建对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); //使用工厂类的对象创建文档对象,该对象映射操作xml文件 DocumentBuilder docum = dbf.newDocumentBuilder(); Document doc = ...原创 2018-06-01 10:27:05 · 179 阅读 · 0 评论 -
java访问数据库--jdbc
jdbc的四个核心对象: java.sql 类 DriverManager:用于注册驱动 java.sql 接口 Connection:标识与数据库建立的链接 java.sql 接口 Statement:操作数据库sql语句的对象 java.sql 接口 ResultSet:结果集对象使用jdbc对数据库进行操作的步骤: -注册驱动 -建立链接...原创 2018-07-28 15:04:39 · 146 阅读 · 0 评论 -
jdbc之防止sql注入问题
java.sql 接口 PreparedStatement 表示预编译的 SQL 语句的对象 是Statement的子类 特点: 性能高、会把sql语句预先编译、sql语句中的参数会发生变化,过滤掉用户输入的关键字public class LoginDemo { public static void main(String[] args) {...原创 2018-07-28 15:39:12 · 692 阅读 · 0 评论 -
三天打鱼两天晒网
问题描述中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。解题思路存储日期到in.txt文件:采用BufferOutPutStream字节缓冲流对FileOutPutStrean进行了包装以便提高效率、保护磁盘。从in.txt文件读取日期:采用BufferReader对FileReader进行包装...原创 2018-08-30 20:38:15 · 496 阅读 · 0 评论 -
对象的序列化
对象的序列化(对象流) 将对象以字节方式序列化,存储到硬盘,或者进行网络中传输。进行对象的硬盘存储: 1. 使得被存储的对象,必须要实现序列化的接口! 2. 实现序列化接口得类,生成序列化版本号,如未生成,修改类代码结构后,产生:InvalidClassException 3. 读取文件中的序列化对象,以EOFException异常的发生表示读取文件末尾...原创 2018-09-03 19:23:42 · 104 阅读 · 0 评论 -
java 关于properties文件的使用
先定义一个文件:实现对文件中资源的访问:方法一:import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class Propertiess { private static Properties ps = new Properties(); static { In...原创 2018-05-28 17:04:25 · 603 阅读 · 0 评论 -
java关于注解的使用
一:注解的基本概念Java 注解就像修饰符一样,可以用于从java代码中抽取文档、跟踪代码中的依赖性或者在编译时做检查。注解可以被应用在包、类、方法、成员变量、参数和本地变量的声明中。注解的工作原理就是,先使用注解修饰java代码,然后另一块叫做注解处理器 的代码会解析这段注解和被修饰的代码并做相应的处理。二、JDK内置的标准注解Java SE中内置了三个标准注解,在java.lang中...原创 2018-05-28 15:55:40 · 350 阅读 · 0 评论 -
int和Integer有什么区别?
Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。Java 为每个原始类型提供了包装类型: - 原始类型: boolean,char,byt...转载 2018-03-15 11:20:49 · 339 阅读 · 0 评论 -
集合类TreeSet中关于Comparable接口与Comparator接口实现排序
实现自定义的排序常用有两种方法一、实体类 实现java.lang.Comparable接口且重写compareTo()方法二、业务排序类 实现java.util.Compartor接口且重写compare()方法第一种方法举例: 实体类为学生类 属性有学分,学号,姓名,该类实现了Comparable接口并重写compareTo()方法 本例按照学分降序排列public class Stu...原创 2018-05-15 16:38:19 · 502 阅读 · 0 评论 -
java 反射机制实现对属性、方法、构造器操作的常用方法
先创建一个类,类中对属性以及方法设置了各种访问权限public class Student { private int id; String name; protected boolean sex; public float score; Student(){ } public Student(int id, String name, boolean sex, float...原创 2018-05-27 19:47:34 · 151 阅读 · 0 评论 -
java获取反射机制的三种方式
java 获取反射常使用的三种方式:1.通过new对象实现反射机制2.通过路径实现反射机制3.通过类名实现反射机制例子:建立一个学生类:public class Student { private int id; String name; protected boolean sex; public float score; }获取反射机制public class Get { //获取...原创 2018-05-26 23:59:44 · 18900 阅读 · 3 评论 -
java IO之递归实现文件夹(目录)的拷贝
将一个文件夹(目录)拷贝到另一个文件夹(目录)可以分为文件的拷贝和文件夹(目录)的创建public class FileTools {//拷贝文件的方法 public static void copyfile(File sour, File tar) throws IOException { BufferedInputStream bis = new BufferedInputStream(ne...原创 2018-05-25 20:28:08 · 361 阅读 · 0 评论 -
java方法重写中声明异常的原则
子类声明异常的范围不能超过弗雷声明的范围: 1. 父类没有声明异常,子类也不能; 2.不可以抛出原有方法抛出异常类的父类或者上层类 3.抛出的异常类型数目不可以比原有方法抛出的还多(不是指个数)例如:import java.io.FileNotFoundException;import java.io.IOException;import java.text.ParseExcep...原创 2018-05-21 21:32:14 · 1682 阅读 · 0 评论 -
java中String类的substring的小细节
String类的substring()方法实现返回一个字符串,该字符串是此字符串的子字符串。根据源码可以看出如果当形参为0时返回的仍然是但前的字符串对象,并没有创建新的对象:public String substring(int beginIndex) { if (beginIndex < 0) { throw new StringIndexOutOfBo...原创 2018-05-21 16:38:40 · 374 阅读 · 0 评论 -
java的多态与回调
在java中实现回调(CallBack)是通过多态实现的,通过一个方法动态绑定到不同的实现过程。例如,在做餐时,买菜、洗菜等过程都已经固定,而做菜的形式不同,可能做鱼、米饭、面条等等,这个时候我们可以将做菜的方法写入代码中,在不同的做菜需求时,通过类的继承实现多态的动态绑定:public class Cook { public void cook() { System.out.printl...原创 2018-05-21 16:04:54 · 194 阅读 · 0 评论 -
java多态与回调
在java中实现回调(CallBack)是通过多态实现的,通过一个方法动态绑定到不同的实现过程。例如,在做餐时,买菜、洗菜等过程都已经固定,而做菜的形式不同,可能做鱼、米饭、面条等等,这个时候我们可以将做菜的方法写入代码中,在不同的做菜需求时,通过类的继承实现多态的动态绑定://主类public class MyMian { public static void dinner(Cook c)...原创 2018-05-21 15:59:44 · 394 阅读 · 0 评论 -
java接口随jdk版本更新的变化
jdk1.7以及以前: 可声明静态常量属性和抽象方法: public interface int1 { static final int x=0; int y=0;//默认static final public abstract void Test1(); abstract void test2(); void test3() ;//默认 public...原创 2018-05-21 15:01:38 · 781 阅读 · 0 评论 -
java静态初始化块
在加载类之前执行,public class Test { private static int x; private int y; private int z; static { System.out.println("我是静态代码块"); x=100; //y=100;//不能调用普通成员 } public static void main(String[] args) { Test ...原创 2018-05-20 20:49:11 · 123 阅读 · 0 评论 -
java中的this关键字
this 的本质是“创建好的对象的地址”,指的是当前建好的对象:注意:不能用于static方法第一种用法,区分二义性:public class Test { private int x; private int y; Test(int x,int y){ this.x = x;//变量名相同,区分形参和实参 this.y = y; } }第二种方法,使用this调用构造器,必须位于第一句p...原创 2018-05-20 20:41:00 · 998 阅读 · 0 评论 -
java 带标签的continue实现类似goto的语句
在java程序中,出于安全性考虑没有将goto的语法写入java中,但却保留了关键字。然而提供了一种带标签的continue实现类似的goto,但是适用范围有限。一个列子,打印100以内所以质数:public class TestBreak { public static void main(String[] args) { other:for(int i=1;i<100;i++) { ...原创 2018-05-20 20:28:24 · 255 阅读 · 0 评论 -
JAVA GUI界面编程实现树节点的事件监听
一、创建滚动条容器,将该容器添加到当前框架。(因为树模型需要在滚动条中才能显示完全)JScrollPane scrollPane = new JScrollPane(); 二、创建树模型JTree tree = new JTree(); DefaultMutableTreeNode dft =new DefaultMutableTreeNode("Jtree") { { DefaultM...原创 2018-05-14 21:31:30 · 3543 阅读 · 0 评论