Java基础学习
Java学习与笔记分享!愿大家看到即得到!
内容来自:毕向东老师Java基础教程
W_Meng_H
希望是本无所谓有,无所谓无的!
这正如地上的路,其实地上本没有路,走的人多了,也便成了路!
展开
-
Java- 并发编程 注意事项
put 方法判断如果 key 已经存在,则使用 value 覆盖原来的值并返回原来的值,如果不存在则把 value 放入并返回 null。而 putIfAbsent 方法则是如果 key 已经存在则直接返回原来对应的值并不使用 value 覆盖,如果 key 不存在则放入 value 并返回 null,另外要注意,判断 key 是否存在和放入是原子性操作。...翻译 2020-05-22 10:03:00 · 396 阅读 · 0 评论 -
面向对象-静态什么时候使用?
什么时候使用静态?静态修饰的内容有成员变量和函数1、什么时候定义静态变量(类变量)呢?当对象中出现共享数据时,数据被静态所修饰。对象中的特有数据要定义成非静态存在堆内存中。2、什么时候定义静态函数呢?当功能内部没有访问到非静态数据(对象的特有数据),该功能可以定义成静态的。class Person{ String name; public void show() { System.out...转载 2018-03-17 11:24:41 · 410 阅读 · 0 评论 -
Java基础-System、Runtime、Date
System类中的方法和属性都是静态的。out:标准输出,默认是控制台。in:标准输入,默认是键盘。描述系统一些信息,获取系统属性信息:Properties getProprtties();代码:import java.util.*;import static java.util.Arrays.*;//导入的是Arrays这个类中的所有静态成员/*packa/Demo.classpack...原创 2018-03-23 10:40:37 · 277 阅读 · 0 评论 -
Java基础-Date、Calendar
DateFormat:日期格式化TimeZone:时区代码:import java.text.*;import java.util.*;public class code{ public static void main(String[] args) { Date d = new Date(); System.out.println(d);//打印时间不便于观看 //...原创 2018-03-23 10:40:42 · 267 阅读 · 0 评论 -
Java基础-Math
Math 部分方法练习代码:import java.util.*;public class code{ public static void main(String[] args) { Random r = new Random(); for(int i=0; i<10; i++) { //伪随机数生成器,有一定的规律,底层是算法实现 double p = (...原创 2018-03-23 10:40:51 · 286 阅读 · 0 评论 -
Java基础-IO流、FlieWriter和IO异常的处理方式
IO(Input Output)流1、IO流对数据的操作是通过流的方式2、Java对数据的操作是通过流的方式3、Java用于操作流的对象都在IO包中4、流按操作分为两种:字节流和字符流5、流按流向分为:输入流和输出流字符流和字节流:字节流两个基类:InputStream、OutputStream字符流两个基类:Reader、Writer字符流特点:既然IO流是用于操作数据的,那么数据的最常见体现形...原创 2018-03-23 10:40:56 · 458 阅读 · 0 评论 -
Java基础-文件的续写、文本文件读取方式及其练习
演示对已有文件的数据续写 代码:import java.io.*;public class code{ public static void main(String[] args) { //传递一个true参数,代表不覆盖已有的文件,并在已有文件的末尾处进行数据续写 FileWriter fw = null; try { fw = new FileWriter("de...原创 2018-03-23 10:41:01 · 831 阅读 · 0 评论 -
Java基础-拷贝文本文件
将C盘一个文本文件复制到D盘 代码:import java.io.*;import javax.management.RuntimeErrorException;public class code{ public static void main(String[] args) throws IOException { copy_2(); } public static ...原创 2018-03-23 10:41:12 · 390 阅读 · 0 评论 -
Java基础-BufferedWriter和BufferedReader
字符写入流缓冲区:缓冲区的出现是为了提高流的操作效率而出现的,所以在创建缓冲区之前,必须要现有流对象。该缓冲区中 提供了一个跨平台的换行符。newLine();代码:import java.io.*;import javax.management.RuntimeErrorException;public class code{ public static void main(Stri...原创 2018-03-23 10:41:20 · 374 阅读 · 0 评论 -
Java基础-装饰设计模式、装饰与继承的区别
装饰设计模式:当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。装饰类通常会通过构造方法接受被装饰的对象。并基于被装饰的对象功能,提供更强的功能。代码:import java.io.*;public class code{ public static void main(String[] args) throws I...原创 2018-03-23 10:41:24 · 392 阅读 · 0 评论 -
Java基础-LineNumberReader
LineNumberReader的使用 代码:import java.io.*;import javax.annotation.processing.Filer;public class code{ public static void main(String[] args) throws IOException { FileReader fr = new FileReader...原创 2018-03-23 10:41:35 · 308 阅读 · 0 评论 -
Java基础-字节流File读写操作和拷贝图片
字符流:FlieReaderFlieWriterBufferedReaderBufferedWriter字符数组字节流:InputStreamOutputStream字节数组需求:想要操作图片数据,这时就要用到字节流。代码:import java.io.*;public class code{ public static void main(String[] args) throws I...原创 2018-03-23 10:41:39 · 877 阅读 · 0 评论 -
Java基础-字节流的缓冲区
字节流缓冲区 代码:import java.io.*;public class code{ public static void main(String[] args) throws IOException { copy_1(); } public static void copy_1() throws IOException { BufferedInputStream...原创 2018-03-24 17:56:52 · 800 阅读 · 0 评论 -
Java基础-读取转换流、写入转换流
读取键盘录入:System.out:对应的是标准输出设备-控制台System.in:对应的标准输入设备-键盘代码:import java.io.*;public class code{ public static void main(String[] args) throws IOException { InputStream in = System.in; StringBuil...原创 2018-03-24 17:56:57 · 456 阅读 · 0 评论 -
Java基础-IO流操作规律等
流操作的基本规律:1、明确源和目的: 源:输入流->InputStream Reader 目的:输出流->OutputStream Writer2、操作的数据是否是纯文本: 是:字符流 不是:字节流3、当体系明确后,在明确要使用哪个具体的对象。 通过设备来进行区分: 源设备:内存、硬盘、键盘 目的设备:内存、硬盘、控制台1、将一...原创 2018-03-24 17:57:01 · 275 阅读 · 0 评论 -
Java基础-File概述
File类:1、用来将文件或者文件夹封装成对象2、方便对文件与文件夹的属性信息进行操作3、File对象可以作为参数传递给流的构造函数代码:import java.io.*;import java.util.*;public class code{ public static void main(String[] args) throws IOException { method_1...原创 2018-03-24 17:57:08 · 274 阅读 · 0 评论 -
Java基础-Properties
Properties是hashtable的子类:也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串,是集合和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。那么在加载数据时,需要数据有固定格式:键=值。常用方法:Object setProperty(String key,String value): 调用Hashtable的put方法,设置键值对S...原创 2018-03-24 17:57:12 · 351 阅读 · 0 评论 -
Java基础-打印流和合并流、分割与管道流、RandomAccessFile及其它流
打印流:打印流提供了打印方法,可以将各种数据类型的数据都原样打印。字节打印流:PrintStream构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream字符打印流:PrintWriter构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream4,字符输出流,Wri...原创 2018-03-24 17:57:20 · 322 阅读 · 0 评论 -
Java基础-字符编码与练习
一、概述1.字符流的出现为了方便操作字符。2.更重要的是加入了编码的转换,即转换流。3.通过子类转换流来完成。在两个对象进行构造的时候,可以加入字符集(即编码表),可传入编码表的有: (1)转换流:InuputStreamReader和OutputStreamWriter (2)打印流:PrintStream和PrintWriter,只有输出流编码表的由来 ...原创 2018-03-24 17:57:29 · 405 阅读 · 0 评论 -
Java基础-GUI(概述、布局、Frame、事件监听机制等事件演示)
GUI:Graphical User Interface 图形用户接口Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中CLI:Common line User Interface 命令行用户接口Awt:Abstract Window ToolKit(抽象工具包),需要调用本地系统方法实现功能,属于重量级控件。Swing:在Awt的基础上,建立的一套图形界面系统,其中...原创 2018-03-24 17:57:33 · 625 阅读 · 0 评论 -
Java基础-列出指定目录内容和对话框(Dialog)
列出指定目录内容和对话框 演示代码:import java.awt.*;import java.awt.event.*;import java.io.*;public class code{ public static void main(String[] args) { new myWindow(); }}class myWindow{ private Frame ...原创 2018-03-24 17:57:37 · 656 阅读 · 0 评论 -
Java基础-GUI(菜单)
GUI--菜单 演示代码:import java.awt.*;import java.awt.event.*;public class code{ public static void main(String[] args) { new myMenu(); }}class myMenu{ private Frame f; private MenuBar mb; pr...原创 2018-03-24 17:57:48 · 598 阅读 · 0 评论 -
Java基础-简易记事本开发(打开与保存)
简易记事本开发--打开与保存代码:package Demo;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.management.RuntimeErrorException;public class code{ public static void main(String[] arg...原创 2018-03-25 18:58:23 · 1838 阅读 · 1 评论 -
Java基础-网络编程(概述、网络模型、TCP和UDP)
一、网络编程概述:1、实现网络之间的通信,要具备三个要素,IP地址,端口,和通讯协议。IP地址:它是为主机编地址的方式。IP地址是32位的二进制数。它被分隔成4部分,每部分八个二进制位,中间用,隔开,因此每段最大为255。常见的IP地址有IPV4和IPV6.。IPV4为32位,分4段,每段最大值为255,但是随着互联网的发展,IP地址需求过大,因此产生了IPV6它是采用128位的地址长度。解决了I...原创 2018-03-25 18:58:29 · 340 阅读 · 0 评论 -
Java基础-Socket、UDP
Socket:1、Socket就是为网络服务提供的一种机制2、通信的两端都有Socket3、网络通信其实就是Socket间的通信4、数据在两个Socket间通过IO传输UDP发送端:需求:通过DUP传输方式,将一段文字数据发送出去定义一个UDP的发送端思路:1、建立udpsocket服务2、提供数据,并将数据封装到数据包中3、通过socket服务的发送功能,将数据包发出去4、关闭资源代码:clas...原创 2018-03-25 18:58:37 · 322 阅读 · 0 评论 -
Java基础-UDP 键盘录入数据 、聊天程序
UDP键盘录入数据方式:read和receive都是阻塞式方法,如果接收不到数据,就会等待。java.net包和java.io包通常一起使用。代码:public class code{ public static void main(String[] args) throws IOException { DatagramSocket ds=new Datagram...原创 2018-03-25 19:01:20 · 456 阅读 · 0 评论 -
Java基础-TCP传输
TCP传输Socket和ServerSocket建立客户端和服务器端,建立连接后,通过Socket中的IO流进行数据传输,关闭Socket,同样,服务器端和客户端是两个独立的应用程序。代码:/*需求:给服务器端发送一个文本数据步骤:1.创建Socket服务,并指定要连接的主机和端口*/import java.net.*;import java.io.*;class TcpSocke...原创 2018-03-25 19:08:35 · 341 阅读 · 0 评论 -
Java基础-正则表达式
转载链接:https://blog.csdn.net/u010710575/article/details/9149327正则表达式作用:用于专门操作字符串。特点:用于一些特定的符号来表示一些代码操作。这样就书写简化。所以学习正则表达式,就是在学习一些特殊符号的使用。好处:可以简化对字符串的复杂操作。弊端:符号越多,正则越长,阅读性越差。操作:1.匹配:String matches方法。用规则匹配...转载 2018-03-25 19:18:39 · 315 阅读 · 0 评论 -
面向对象-静态代码块
静态代码块格式:static{ 静态代码块中的执行语句}特点:随着类的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化。代码:class Staticcode{ static { System.out.println("a"); }}class code{ static { System.out.println("b"); } public static...转载 2018-03-17 11:26:29 · 287 阅读 · 0 评论 -
面向对象-对象的初始化过程
Person p = new Person(null, 0);这句话都做了什么事情?1、因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中。2、执行该类中的static代码块,如果有的话,给Person.class类进行初始化。3、在堆内存中开辟空间,分配内存地址。4、在堆内存中建立对象的特有属性,并进行默认初始化。5、对属性进行显示初始化。6、对象进...转载 2018-03-17 11:27:06 · 414 阅读 · 0 评论 -
面向对象-单例设计模式
单例设计模式 就是保证该类在程序中只能存在一个对象,所以不能让别人实例化该类,所以要私有化(private)该类的构造函数,但是你要为别人提供一个该类的唯一对象,所以你要在该类中定义一个静态的方法返回本类对象。设计模式:解决某一问题最行之有效的方法单例设计模式:解决一个类在内存只存在一个对象想要保证对象唯一:1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象2、还为了让其他程序可以访...转载 2018-03-17 11:28:06 · 383 阅读 · 0 评论 -
面向对象-继承
继承:1、提高了代码的复用性2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有所属关系才可以继承,所属关系是a。Java语言只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类中定义相同功能,功能内容不同时,子类对象不确定要运行哪一个,但是Java保留这种机制,并用另一种体现形式来完成表示:多实现。Jav...转载 2018-03-17 11:28:40 · 293 阅读 · 0 评论 -
面向对象-子父类中变量的特点
子父类出现后,类成员的特点:类中成员:1、变量 2、函数 3、构造函数变量:如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this,子类要访问父类中的同名变量,用super。super的使用和this的使用几乎一致this代表本类对象的引用super代表父类对象的引用代码:class Fu{ int num = 4;}class Zi extends Fu{ int ...转载 2018-03-17 11:29:10 · 274 阅读 · 0 评论 -
面向对象-final关键字
final:最终,作为一个修饰符。1、可以修饰类,函数,变量。2、被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。3、被final修饰的方法不可以被复写。4、被final修饰的变量时一个敞亮只能赋值一次,既可以修饰成员变量,也可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。方便于阅读。而这个值不需要改变,所以加上final修...转载 2018-03-18 09:58:49 · 252 阅读 · 0 评论 -
面向对象-子父类中构造函数的特点(子类实例化过程)
子父类中的构造函数在对子类对象进行初始化时,父类的构造函数也会运行,因为子类的构造函数默认第一行有一条隐式的语句super();super():会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super();为什么子类一定要访问父类中的构造函数?因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的。所以子类字啊对象初始化时,要先访问...转载 2018-03-18 09:58:40 · 398 阅读 · 0 评论 -
面向对象-抽象类
抽象:里边有未明确的东西。抽象类的特点:1、抽象方法一定在抽象类中。2、抽象方法和抽象类都必须被abstract关键字修饰。3、抽象类不可以用new创建对象,因为调用抽象方法没意义。4、抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用。如果子类只覆盖部分抽象方法,那么该子类还是一个抽象类。抽象类和一般类没有太大的不同。如何描述事物,就如何描述事物,只不过,该事物出现了...转载 2018-03-18 09:59:12 · 312 阅读 · 0 评论 -
面向对象-模板方法模式
需求:获取一段程序运行的时间。原理:获取程序开始和结束时间并相减即可。获取时间:System.currentTimeMillis();当代码完成优化后,就可以解决这类问题。这种方式:模板方法设计模式。什么是模板方法?在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。代码:abstract class Ge...转载 2018-03-18 09:59:17 · 324 阅读 · 0 评论 -
面向对象-接口
接口:初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。class用于定义类interface用于定义接口接口定义时,格式特点:1.接口中常见定义:常量、抽象方法。2.接口中的成员都有固定修饰符。常量:public static final方法:public abstract重点:接口中的成员都是public的。接口:是不可以创建对象的,因为有抽象...转载 2018-03-18 09:59:22 · 275 阅读 · 0 评论 -
面向对象-多态、多态中成员的特点
多态:可以理解为事物存在的多钟体现形态。1.多态的体现 父类的引用指向了自己的子类对象。 父类的引用也可以接收自己的子类对象。2.多态的前提 必须使类与类之间有关系,要么继承,要么实现。 通常还有一个前提:存在覆盖。3.多态的好处 多态的出现大大的提高程序的扩展性。 多态的弊端 提高了扩展性,但是只能使用父类的引用,访问父类中的成员。4.多态的应用5.多态的...转载 2018-03-18 09:59:28 · 296 阅读 · 0 评论 -
面向对象-Object类(equals())
Object:是所有对象的直接后者间接父类,传说中的上帝。该类中定义的肯定是所有对象都具备的功能。Object类中已经提供了对对象是否相同的比较方法。如果自定义类中也有比较相同的功能,没有必要重新定义。只要沿袭父类中的功能,建立自己特有比较内容即可,这就是覆盖。代码:class Demo //extends Object{ private int num; Demo(int num){ ...转载 2018-03-18 09:59:50 · 279 阅读 · 0 评论