
Java笔记
文章平均质量分 67
初学Java
liudachu
当你的才华撑还不起你的野心时,那你就应该静下心来渎书
展开
-
JVM—内存可见性
可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。原创 2024-03-22 10:01:01 · 612 阅读 · 3 评论 -
java中的日期类
中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。类:代表一个包含年、月、日、小时、分钟、秒的日期对象,如2007-12-03T10:15:30。通过API或源码,可以看出Date类的大部分方法已经过时,已被第二代日期类Calendar代替,剩下的Date类常见方法如下所示。这三个类都代表日期对象,只是包含的日历字段不同,相当于Calendar类的代替。原创 2024-03-14 16:19:14 · 966 阅读 · 0 评论 -
Java BigDecimal 详解
Java BigDecimal 详解文章转载–用于补Javase的基础知识1.引言 float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。先看下面代码public static void main(String[] args) { ..转载 2020-06-23 17:14:40 · 471 阅读 · 0 评论 -
线程池&Lambda表达式【JAVA基础】
线程池:问题需求:如果并发线程数量很多,并且每个线程都是执行一个很短的任务就结束了,这样频繁的创建线程,会降低系统的效率,因为频繁创建线程和销毁线程需要时间,–线程池可以使线程复用。线程池的概念:容器->集合线程池的使用:线程池的使用步骤:1.使用线程池的工厂类Executor里面提供的静态方法newFixedThreadPool产生一个指定线程数量的线程池2.创建一个类,实现Runnable接口,重写run方法,设置线程任务。3.调用ExecutorService中的方原创 2020-06-02 11:51:56 · 1154 阅读 · 0 评论 -
抽象类、接口(特殊抽象类)之张三抽烟【JAVA基础】
abstract 抽象关键字1.抽象方法一定在抽象类中2.抽象方法和抽象类都必须被abstract关键字修饰3.抽象类不可以应new创建对象,因为调用抽象方法没意义4.抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类举个栗子package 黑马;/* * 需求:获取一段程序运行的时间 * 原理:获取程...原创 2020-05-06 12:02:28 · 315 阅读 · 0 评论 -
GUI(界面化布局)+简单记事本软件【JAVA基础】
GUI:Graphical User Interface(图形用户接口)。用图形的方式,来显示计算机操作的界面,这样更方便更直观。AWT:Abstract Window Toolkit,抽象窗口开发包。重量级组件。在Windows系统与Linux系统都可运行,但由于是调用操作系统实现的组件,在两个平台运行后并不是完全相同,可移植性一般。AWT最基本组成部分是组件(Component)Com...原创 2020-04-30 12:17:50 · 1882 阅读 · 4 评论 -
IO包中的其他类【JAVA基础】
管道流:IO流和多线程相结合PipedInputStream in=new PipedInputStream(); PipedOutputStream out=new PipedOutputStream(); in.connect(out); Read r=new Read(in); Write w=new Write(out); new Thread(r).start();...原创 2020-04-26 21:05:23 · 191 阅读 · 0 评论 -
IO流之Properties类【JAVA基础】
Properties类Properties是hashtable的子类,具备map集合的特点,而且存储的键值对都是字符串是集合中和IO技术相结合的集合容器用处:用于键值对形式的配置文件构造函数Properties prop=new Properties();1.集合方法: 设置: prop.setProperty("lisi", "39"); 获取: Set<Str...原创 2020-04-26 09:22:26 · 209 阅读 · 0 评论 -
IO流之File类和打印流【JAVA基础】
File类File类常见方法:1.创建 boolean creatNewFile(); 在指定位置创建文件,如果该文件已经存在,则不创建,返回false 和输出流不一样,输出流对象一建立创建文件,而且文件已经存在,会覆盖。 boolean mkdir();创建文件夹 boolean mkdirs();创建多级文件夹2.删除 boolean delete();删除...原创 2020-04-26 08:59:11 · 226 阅读 · 0 评论 -
IO流之基础总结【JAVA基础】
IO流字节流字节读取流 常用子类:FileInputStream字节写入流 常用子类:FileOutputStream字节流缓冲区+案例字符流字符读取流 常用子类:FileReader字符写入流 常用子类:FileWriter字符流缓冲区+案例流操作的基本规律+读取转换流学生信息录入硬盘小程序1.IO流用来处理设备之间的数据传输2.Java对数据的操作都是通过流的方式字节流字节流的抽象基类...原创 2020-04-25 23:16:07 · 154 阅读 · 0 评论 -
简单了解字符编码【JAVA基础】
编码和解码编码:字符串变成字节数组。String–>byte[]; str.getBytes(charsetName);解码:字节数组变成字符串。byte[]–>String; new String(byte[],charsetName);栗子import java.io.IOException;import java.util.Arrays;publ...原创 2020-04-25 22:15:48 · 117 阅读 · 0 评论 -
read()方法返回值为什么是int【JAVA基础】
read()方法返回值为什么是int左绍骏 最后发布于2020-01-05 21:17:55 阅读数 98 收藏展开read()方法返回值为什么是intA:read()方法读取的是一个字节,为什么返回是int,而不是byte?因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式存储的。如果每次读取都返回byte,有可能在读到中间的时候遇到11111111,...转载 2020-04-20 19:23:26 · 483 阅读 · 0 评论 -
简单的Java学生管理操作【JAVA基础】
学生类public class Student{ //定义学生对象 private String no; private String name; private int score; public Student() { super(); } public Student(String no, String name, int score) { //有参的构造方法 s...原创 2020-04-19 18:55:42 · 189 阅读 · 0 评论 -
字符数组、字符串数组转换成字符串【JAVA基础】
一、字符数组to字符串直接声明char[] c={'a', 'b', 'c'}; String s = new String(c);二、字符串数组to字符串string是不可变类——利用StringBufferString[ ] str = {"abc", "dfe", "hij"}; StringBuffer sb = new StringBuffer(); for(...转载 2020-04-19 09:08:45 · 633 阅读 · 0 评论 -
集合框架Map,HashMap,TreeMap【JAVA基础】
集合框架Map的所有子类|--map|--HashTable|--HashMap|--TreeMap-----Map集合共性方法1.添加put(K key,V value)//添加元素,如果出现添加时,相同的键,后者覆盖前者,put方法会返回被覆盖的键putAll(Map<? extends K,? extends V> m)2.删除clear()remove(Obje...原创 2020-04-16 11:25:29 · 217 阅读 · 0 评论 -
String(字符串)类,字符串缓冲区【JAVA基础】
String(字符串)类概述: 1."abc"属于一个对象 2.String类复写了Object类中equals方法,该方法用于判断字符串是否相同。字符串常见的操作获取 1.获取长度:字符串中包含的字符数。 int length() 2.根据位置获取位置上某个字符。 char charAt(int index); 3.根据字符获取该字符在字符串中的位置 int indexof(int ch);返回的是ch在字符串中第一次出现的位置。(参数是Acall值)原创 2020-04-15 16:53:19 · 758 阅读 · 2 评论 -
基本数据类型对象包装类【JAVA基础】
基本数据类型对象包装类:为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作用于描述该对象的类就称为基本数据类型对象包装类byte Byteshort shortint Integerlong Longbo...原创 2020-04-15 16:47:45 · 272 阅读 · 0 评论 -
集合框架Collection【JAVA基础】
集合框架Collection的所有子类|--List|--ArrayList|--LinkedList|--Vector|--set|--HasSet:|--TreeSet:创建一个集合容器,使用Collection接口的子类,Array...原创 2020-04-12 16:41:01 · 167 阅读 · 0 评论 -
Java中compareTo和equals以及== 对于字符串的用法区别【JAVA基础】
equals方法是java.lang.Object类的方法compareTo方法是java.String类和java.Integer类等多个对象都实现的方法一、使用“= =和“equals()”方法比较字符串是否相同对于字符串变量来说,使用“= =”和“equals()”方法比较字符串时,其比较方法不同。1、“==”比较两个变量本身的值,即两个对象在内存中的首地址。(java中,对象的首...原创 2020-04-12 16:07:39 · 790 阅读 · 0 评论 -
Java-单例设计模式(懒汉与饿汉)【JAVA基础】
单例设计模式保证一个类在内存中只能有一个对象。思路:1)如果其他程序能够随意用 new 创建该类对象,那么就无法控制个数。因此,不让其他程序用 new 创建该类的对象。2)既然不让其他程序 new 该类对象,那么该类在自己内部就要创建一个对象,否则该类就永远无法创建对象了。3)该类将创建的对象对外(整个系统)提供,让其他程序获取并使用。饿汉式:一上来我就把对象给你 new 好了,你来...转载 2020-04-11 09:53:24 · 149 阅读 · 0 评论 -
JAVA:重载overload与覆盖(重写)override的区别【JAVA基础】
重载:方法名相同,但参数不同的多个同名函数重载overload的注意事项:1.参数不同的意思是参数类型、参数个数、参数顺序至少有一个不同覆盖(重写):覆盖只会在类继承的时候才会出现,覆盖要求两个函数的名字和参数列表都完全一样。覆盖override的注意事项:1.静态只能覆盖静态2. 重写的方法不能降低父类方法的"可见度"。3. 不能抛出新的异常或者父异常。...原创 2020-04-10 18:28:29 · 202 阅读 · 0 评论 -
Java之多线程,并发(含图解,代码案例)【JAVA基础】
多线程进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元线程在控制着进程的执行一个进程中至少有一个线程。Java jvm(虚拟机) 启动的时...原创 2020-04-08 09:38:01 · 3962 阅读 · 0 评论 -
Java中“||”与“|”的区别【JAVA基础】
结果为假 0||结果为真 1。原创 2020-04-01 10:38:10 · 13919 阅读 · 8 评论 -
java 异常【JAVA基础】
异常: 什么是异常?是对问题的描述,将问题进行对象封装 异常体系: Throwable |--Error |--Exception |--RuntimeException 异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性 ...原创 2020-03-31 09:09:22 · 110 阅读 · 0 评论 -
Java 多态【JAVA基础】
多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:1. 多态的体现父类的引用指向了自己的子类对象父类的引用也可以接受自己的子类对象2. 多态的前提必须是类与类之间有关系通常还有一个前提:存在覆盖3. 多态的好处多态的出现大大的提高程序的扩展性4. 多态的弊端提高了扩展性,但是只能使用父类的引用访问父类中的成员。多...原创 2020-03-28 09:28:04 · 244 阅读 · 1 评论 -
this关键字的使用【JAVA基础】
this关键字:this就代表它所在函数所属对象的引用,(哪个对象在调用this所在的函数,this就代表哪个对象)this的应用:当定义类中的功能时,该函数内部要用到调用该函数的对象时, 这时用this来表示这个对象,但凡本类功能内部使用了本类对象,都用this注意:this在构造函数间的调用必须使用this,this语句只能定义在构造函数的第一行(因为初始化...原创 2020-03-23 08:36:01 · 157 阅读 · 0 评论 -
static关键字的使用【JAVA基础】
static是一个修饰符,用于修饰成员(成员变量,成员函数)一、static特点:1.随着类的加载而加载(静态会随着类的消失而消失,说明它的生命周期最长)2.优先于的对象存在3.被所有对象所共享4.可以被类名所调用(类名.静态成员)二、实例变量(普通变量)和类变量(静态变量)的区别、1.存放位置类变量随着类的加载而存在于方法区中实例变量随着对象的建立而存在于堆内存中2.生命周期...原创 2020-03-23 08:32:31 · 183 阅读 · 0 评论 -
switch语句不加break的错误【JAVA基础】
switch case语句犯得错误:会犯这种错误,都是基础不牢固导致的。但是这样的错误却花费了我数小时去debug.想来真是很让人郁闷。看一段代码:(不想看代码直接看后面总结)private void arrange() {switch (direction) {case ‘U’:case’R’:case’D’:case’L’:}在这个语句中,如果direction=U。那么四...原创 2020-03-18 17:32:51 · 1032 阅读 · 0 评论 -
字符串转换成数字类型的问题【JAVA基础】
字符串转换成int类型parseInt(String s)字符串转换成float类型Float.parseFloat(String s)字符串转换成double类型Double.parseDouble(String s)double和Double的区别原创 2020-03-12 10:57:35 · 306 阅读 · 0 评论 -
java保留小数【JAVA基础】
如果需要更精确的小数计算,可以使用Java的BigDecimal类。BigDecimal提供了高精度的计算,并允许我们控制小数的位数。在示例中,我们使用了BigDecimal.ROUND_HALF_UP舍入模式,它表示四舍五入。DecimalFormat format 方法,在format()一个小数时,总是对格式中的’0’和’#'有些不解吧!都是对pi进行格式化,但第一个的结果是03.142,第二个的结果是3.142。0和#都是占位符,但在不同的地方,作用不一样。下面对他们做了具体的比较。原创 2020-03-12 09:30:38 · 872 阅读 · 0 评论