JAVA学习
文章平均质量分 52
0
上兵伐眸
这个作者很懒,什么都没留下…
展开
-
手写单例模式
例如Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。原创 2022-08-24 20:20:45 · 180 阅读 · 0 评论 -
反射——创建对象、性能测试、操作泛型、操作注解
1、动态创建对象public class test2 { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException { Class c1 = Class.for.原创 2022-03-16 17:11:54 · 641 阅读 · 0 评论 -
注解、反射
1、注解(Annotation)Annotation的作用 不是程序本身 , 可以对程序作出解释 可以被其他程序读取. Annotation的格式注解是以"@注释名"在代码中存在的 还可以添加一些参数值 , 例如:@SuppressWarnings(value="unchecked") 内置注解@Override重写@Deprecated表示已废弃方法属性@SuppressWarnings抑制编译时的警告信息元注解元注解的作用就是负责注解其他注解...原创 2022-03-16 16:01:47 · 698 阅读 · 0 评论 -
JAVAIO流02——缓冲流、转换流
JAVAIO流总结01处理流:套接在已有流的基础上缓冲流(处理流的一种),使用缓冲流会加速读写速度原因:内部提供了一个缓冲区(8192)public static void test6() throws IOException { //文件 File inFile = new File("a.png"); File outFile = new File("b.png"); //节点流 FileInputStre原创 2022-02-28 16:02:57 · 315 阅读 · 0 评论 -
JAVAIO流01——Flie类、IO流
JAVAIO流总结File类File类的一个对象,代表一个文件或者一个文件目录(文件夹)Flie类涉及文件问价夹的创建、删除、重命名、修改时间、文件大小等方法(不涉及读写)绝对路径相对路径//idea使用Junit进行单元测试,相对路径为Module下//使用main测试,相对路径为当前的project下//eclipse无论测试方法还是main()都在project下路径分隔符windows和dos使用\unix/1、IO流分类根据处理数据的数据类型的不同可以原创 2022-02-26 08:45:05 · 396 阅读 · 0 评论 -
JAVA集合框架05——Map接口、实现类HashMap、hashTree、Collections工具类
Map接口的特点1、用于存储任意键值对(key-value) 2、键:无序、无下标、不允许重复(唯一) 3、值:无序、无下标、允许重复public class TestMap { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("cn","中国"); map.put("uk","原创 2022-02-25 09:46:31 · 474 阅读 · 0 评论 -
JAVA集合框架04——Collection子接口Set接口、HashSet、TreeSet、Comparable接口
特点:无序、五下标、元素不可重复public class TestSet { public static void main(String[] args) { Set<String> testSet = new HashSet<String>(); testSet.add("aaa"); testSet.add("bbb"); testSet.add("ccc"); //testSet.ad原创 2022-02-24 14:53:59 · 399 阅读 · 0 评论 -
JAVA的GUI编程02——事件监听(ActionListener)、TextField事件监听、(组合、内部类)
一、事件监听public class TestListener { public static void main(String[] args) { Frame frame = new Frame(); Button button = new Button("buttom"); ActionListener actionListener = new MyActionListener(); button.addActio.原创 2022-02-14 22:55:08 · 1563 阅读 · 0 评论 -
JAVA泛型——泛型类、泛型接口、泛型方法、泛型集合
JAVA泛型是jdk1.5引入的一个新特性,本质是参数化类型,把类型作为参数传递 常见的有:泛型类、泛型接口、泛型方法 语法:<T,...>T表示类型占位符,表示一种应用类型 好处1、提高代码重用。2、防止类型转换异常,提高代码安全性。...原创 2022-02-23 17:21:58 · 695 阅读 · 0 评论 -
JAVA的集合框架03——List的实现类ArrayList、Vector、LinkedList
ArrayList:数组结构实现,查询快。增删慢 jdk1.2、运行效率快,线程不安全Vector:(使用较少)数组结构实现,查询快。增删慢 jdk1.0、运行效率慢,线程安全LinkedList:链表结构实现,增删快,查询慢源码分析ArrayList: (添加元素之后默认容量DEFAUL_CAPACITY = 10,没添加之前默认是0) elementData:存放元素的数组 siz...原创 2022-02-23 16:32:51 · 410 阅读 · 0 评论 -
JAVA集合框架02——Collection的子接口List接口
特点:有序,由下标,元素可以重复测试1public class TestList { public static void main(String[] args) { List list = new ArrayList(); //添加 list.add("aaa"); list.add(0,"bbb"); list.add("ccc"); System.out.println(list.toSt原创 2022-02-23 14:46:06 · 228 阅读 · 0 评论 -
JAVA集合框架01——Collection
1原创 2022-02-23 13:12:17 · 391 阅读 · 1 评论 -
JAVA常用类——System
public class TestSystem { public static void main(String[] args) { //src:原数组 srePos:从哪个位置复制 dest:目标数组 destPos:目标数组的位置 length;复制数组的长度 int[] arr = {1,2,3,4,5,6,7,8,9}; int[] dest = new int[9]; System.arraycopy(arr,0,dest.原创 2022-02-23 11:05:33 · 227 阅读 · 0 评论 -
JAVA常用类——Data、Calendar、SimpleDateFormat
1、Dateimport java.util.Date;public class TestData { public static void main(String[] args) { //创建Date对象 Date data= new Date(); System.out.println(data.toString()); System.out.println(data.toLocaleString()); .原创 2022-02-23 10:48:18 · 311 阅读 · 0 评论 -
JAVA常用类——BigDecimal
double、float的近似存储,需要精确计算的问题需要使用BigDecimalpublic class TestBigDecimal { public static void main(String[] args) { double x = 1.0; double y = 0.9; System.out.println(x-y); double a=1.4; double b = 0.5; d原创 2022-02-23 10:07:26 · 140 阅读 · 0 评论 -
JAVA常用类——String
字符串是常量。创建之后不可改变 字符串字面值存储在字符串池中,可以共享。(字符串池存储在方法区) String name ="aaa";产生一个对象,存储在字符串池中 String name = new String("aaa");产生两个对象,堆、池各存储一个 public class test { public static void main(String[] args) { String name = "aaa"; ..原创 2022-02-22 17:06:56 · 258 阅读 · 0 评论 -
JAVA的GUI编程04——Swing(JFrame框架窗体、Jlable和Container)
一、常用窗体 1. JFrame框架窗体public class TestJFrame { public void init(){ JFrame jframe = new JFrame("Jframe窗体"); jframe.setBackground(Color.blue); jframe.setBounds(200,200,500,500); jframe.setVisible(true); jfra原创 2022-02-15 00:31:18 · 520 阅读 · 0 评论 -
JAVA的GUI编程03——画笔实现、鼠标监听、窗口监听、键盘监听
一、画笔(paint)个Component都有一个paint(Graphics g)用于实现绘图目的,每次重画该Component时都自动调 用paint方法。 public class mypaint { public static void main(String[] args) { new paint1().loadpaint(); }}class paint1 extends Frame{ public void loadpaint(){原创 2022-02-15 00:06:06 · 724 阅读 · 0 评论 -
JAVA的GUI(Graphics User Interface 图形用户界面)编程01——AWT(frame、panel、FlowLayout、BorderLayout、GridLayout)
Swing和AWT 是java开发GUI常用的技术 . 但是由于外观不太美观, 组件数量偏少, 并且运行需要JRE环境。(了解MVC架构和监听器)一、AWTAWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface 图形用户界面)编程。 GUI的各种元素(如:窗口,按钮,文本框等)由Java类来实现。 使用AWT所涉及的类一般在Java.AWT包及其子包中。 Contai原创 2022-02-14 21:24:12 · 492 阅读 · 0 评论 -
JAVA基础14——异常
一、异常体系结构ava把异常当作对象来处理,并定义一个基类 java.lang.Throwable 作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。 Java异常层次结构图: 二、Java异常处理机制 1、异常处理五个关键字 分别是: try 、 catch 、 finally 、 throw 、 throws 2、处理异常 ()使用多重的catch语句:很多情况下,由单个的代码段可能原创 2022-02-14 12:25:40 · 212 阅读 · 0 评论 -
JAVA基础13——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)
原创 2022-02-13 17:03:35 · 276 阅读 · 0 评论 -
JAVA基础12——接口interface
1、接口与抽象类的区别声明类的关键字是class,声明接口的关键字是interface。 继承的关键字是extends、实现的关键字是implements 抽象类是用来被继承的,java中的类是单继承。 接口是用来被类实现的,java中的接口可以被多实现。 一个父类的引用,可以指向这个父类的任意子类对象、一个接口的引用,可以指向这个接口的任意实现类对象 2、接口中的方法都是抽象方法接口中可以不写任何方法,但如果写方法了,该方法必须是抽象方法3、接口中的变量都是静态常...原创 2022-02-13 15:55:28 · 288 阅读 · 0 评论 -
JAVA基础11——抽象类abstract
abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那 么该类就是抽象类。1、抽象类和抽象方法的关系 抽象类中可以没有抽象方法, 但是有抽象方法的类一定要声明为抽象类。 2、特点及作用 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。(只有方法名,没有方法体)注:子类继承抽象类后,需要实现抽象类中没有实现的抽象方法,否则这个子类也要声明为抽象类原创 2022-02-13 15:24:33 · 137 阅读 · 0 评论 -
JAVA基础10——多态(instanceof、类型转换、static、final)
1、instanceof:判断是否存在子父代关系System.out.println(x instanceof Y); 输出结果是true还是false,主要是看变量x所指向的对象实际类型是不是Y类型的"子类型". 该代码能否编译通过,主要是看声明变量x的类型和Y是否存在子父类的关系.有"子父类关"系就编译通过, 没有子父类关系就是编译报错. 2、类型转换低 >>转>> 高 (自动转换) 父类引用指向子类的对象,把子类转换为父类 高 &g...原创 2022-02-13 15:06:59 · 192 阅读 · 0 评论 -
JAVA继承9——多态
多态:同一方法根据发送对象不同,采用多种不同的行为方式多态注意事项多态是方法的多态,属性没有多态 父类和子类,有联系 存在条件:继承关系,重写方法、父类引用可以指向子类对象(father f1 = new son();)静态方法不能重写,静态方法属于类final 常量 不能重写private 私有方法,不能重写...原创 2022-02-13 00:12:49 · 130 阅读 · 0 评论 -
JAVA基础8——封装、继承
1、封装程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外 部干涉;低耦合:仅暴露少量的方法给外部使用使用private 修饰需要封装的成员变量。 (属性私有)提供一个公开的方法设置或者访问私有的属性(get/set)封装的意义:1. 提高程序的安全性,保护数据。 2. 隐藏代码的实现细节 3. 统一用户的调用接口 4. 提高系统的可维护性 5. 便于调用者调用。 良好的封装,便于修改内部代码,提高可维护性。 良好的封装,可进行数据原创 2022-02-12 23:53:40 · 157 阅读 · 0 评论 -
JAVA基础7——创建对象时的内存分析
JAVA程序运行的内存分析 栈 stack: 1. 每个线程私有,不能实现线程间的共享! 2. 局部变量放置于栈中。 3. 栈是由系统自动分配,速度快!栈是一个连续的内存空间! 堆 heap: 1. 放置new出来的对象! 2. 堆是一个不连续的内存空间,分配灵活,速度慢! 方法区(也是堆): 1. 被所有线程共享! 2. 用来存放程序中永远是不变或唯一的内容。(类代码信息、静态变量、字符串常量)类和对象小结1、类和对象类是抽象的模板,对象是一个具体...原创 2022-02-12 21:58:27 · 308 阅读 · 0 评论 -
JAVA基础06——OOP(面向对象编程)、构造器
JAVA的核心思想是OOP(Object-Oriented Programming)-----面向对象编程对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整 个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。抽象 封装 继承 三大特性 多态 (同一个事物具有不同的形态)从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象。 从代码运行角度考虑是先有类后有对象。类是对象的模板。 ...原创 2022-02-12 21:22:50 · 317 阅读 · 0 评论 -
JAVA基础05——数组、冒泡排序、稀疏数组
数组1、数组声明并创建数组数组声明double[] myList; // 首选的方法 或double myList[]; // 效果相同,但不是首选方法 创建数组myList = new int[10]; 声明并创建数组dataType[] arrayRefVar = new dataType[arraySize]; 赋值2、数组的三种初始化//静态初始化:除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并..原创 2022-02-12 18:22:55 · 170 阅读 · 0 评论 -
JAVA基础04——方法、命名、命令行传参、递归
方法使程序变得更简短而清晰。 有利于程序维护。 可以提高程序开发的效率。 提高了代码的重用性。命名:驼峰法形式参数:在方法被调用时用于接收外界输入的数据。***实参:调用方法时实际传给方法的数据。 ***java是值传递方法重载:解决方法是创建另一个有相同名字但参数不同的方法命令行传参:public static void main(String args[]){ for(int i=0; i&...原创 2022-02-12 01:48:00 · 315 阅读 · 0 评论 -
JAVA基础03——Scanner、顺序、选择、循环、beark、continues
1、用户交互Scannerjava.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的 输入。Scanner s = new Scanner(System.in); //创建一个Scanner对象接收字符串并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符 串,在读取前我们一般需要 使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。 Scanner scanner原创 2022-02-12 00:51:26 · 245 阅读 · 0 评论 -
JAVA基础02——JAVA的包机制和JAVADoc
1、JAVA的包机制包的作用: 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。 Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接 口、枚举(enu原创 2022-02-11 22:34:48 · 168 阅读 · 0 评论 -
JAVA基础01——注释、标识符、8种基本数据类型、类型转换、变量常量、运算符号
1、注释1.1单行注释:只能注释当前行,以//开始,直到行结束。1.2多行注释:注释一段文字,以/*开始,*/结束,idea的注释快捷键crtl+/。1.3文档注释:用于生产API文档,配合JavaDoc。2、标识符关于 Java 标识符,有以下几点需要注意: 2.1所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始。2.2首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合 2.3不能使用关键字作为变原创 2022-02-11 22:22:19 · 321 阅读 · 0 评论