
JavaSE笔记
文章平均质量分 75
JavaSE从基础语法到Java核心类,集合,线程...的笔记
lanleihhh
求其上者得其中
展开
-
Java8新特性
Stream允许我们以声明式的方式处理数据集合,可以将Stream看作是遍历数据集合的高级迭代器。Stream 与Lambda表达式结合使用,将使编码效率大大提高,可读性增强。Stream与IO中的是不同的概念操作案例:使用stream将集合中的手机按照序号num从小到大排序:Stream流的操作顺序Stream语法Lambda表达式是一个匿名函数,可以将Lambda表达式理解为一段可以传递的代码(将代码段数据一样传递)。使用Lambda表达式可以写出更简洁,更灵活的代码。原创 2022-11-07 11:51:31 · 2026 阅读 · 0 评论 -
Java的反射机制
Java反射是在程序运行的过程中:动态获取类信息、动态调用对象方法的功能就叫做Java的反射机制一个类被加载后,类的信息都会封装在Class对象里一个类在内存中只有一个Class对象Class 类什么类型可以获取Class对象 ?所有的类接口一维数组 这里一维和二维数组分开说,是因为一维数组和二维数组不是同一类型二维数组注解枚举基本类型包装类voidClass基本数据类型如何理解一个类型只有一个Class对象?数组也是引用类型,求数组的Class对象,只要是同原创 2022-06-25 18:00:49 · 173 阅读 · 0 评论 -
String面试题
String底层是一个final修饰的char数组,private修饰的属性不能被外界访问,我们无法改变它,也无法影响String的值初始化的String的地址不能改变,但是地址中的内容可以改变这个final修饰的char[] value 不是不可变,数组是引用类型,fianl修饰的引用类型不能指向其他引用,但是本身是可以修改的因此只要可以访问到String的value数组,就能达到修改String的目的通过反射可以获取到String的私有属性value观察输出,字符串a已经通过反射拿到value数原创 2022-06-23 17:56:58 · 273 阅读 · 0 评论 -
操作系统与Java中线程状态的区分
类内部维护了一个枚举类State,包含了Java线程的6种状态其中的RUNNABLE包括了运行状态与就绪状态创建了一个线程,还没有执行start()方法。此时线程状态是NEW调用的start(),这个线程会执行它的run()方法,此时进入RUNNABLW状态在进入synchronized代码块/方法 时,如果线程没有获取到对应的monitor锁,就会从Runnable运行状态进入Blocked阻塞状态只有通过synchronized会进入阻塞Blocked。对于其他锁(ReentrantLock等),如原创 2022-06-22 18:19:12 · 470 阅读 · 0 评论 -
windows安装多个版本jdk如何切换?
windows安装多个版本jdk如何切换?windows安装多个版本jdk如何切换?1. 配置JAVA_HOME2. 配置CLASSPATH3. 配置Path切换jdkwindows安装多个版本jdk如何切换?1. 配置JAVA_HOME配置多个版本的JAVA_HOME配置JAVA_HOME为%?%,?为设置的jdk对应的JAVA_HOME变量名2. 配置CLASSPATH在变量CLASSPATH中添加.%JAVA_HOME%\lib%JAVA_HOME%\lib\tools.jar原创 2022-05-29 15:21:51 · 503 阅读 · 0 评论 -
JavaSE复习二:常用关键字:static、final、this、super、instanceof、volatile、synchronized、default、transient
JavaSE复习二:常用关键字:常用关键字staitcfinal使用final修饰一个变量时,是引用不能变,还是引用的对象不能变?什么是不可变类?String中如何通过保护性拷贝来实现不可变?thissuperinstanceofvolatilesynchronizeddefaulttransient常用关键字staitcfinalfinal 最终的final修饰属性(一旦被赋值后就不能被改变)final修饰的属性可以在编译期间(声明时直接赋值)或运行期间(构造方法)对其初始化static原创 2022-05-26 23:46:53 · 221 阅读 · 0 评论 -
Java 泛型
Java 泛型Java 泛型(generics)是 JDK 5 中引入的一个新特性.泛型提供了编译时类型安全检测机制,好处是能够在编译的时候就检查类型安全.使用Object可以接收任意类型的参数,但是存在类型转换的问题.泛型可以解决它.泛型的参数只能说引用类型(类)泛型的类型参数可以有多个没有定义具体类型,默认为Object泛型回顾在学习JavaSE中的集合Collection时,以及自定义数组/链表/二叉树的元素类型时使用过泛型集合中//ArrayList源码 public c原创 2022-02-28 14:41:48 · 287 阅读 · 0 评论 -
java8新特性--Optional类
java8新特性–Optional类Optional类可以解决空指针问题以前处理空指针 /** * 以前处理空指针 */ @Test public void test01(){ //String name = "张三"; String name = null; if(name!=null){ System.out.println(name.length()); }else{原创 2022-02-23 19:20:55 · 505 阅读 · 0 评论 -
Java8新特性---Stream
Java8新特性---StreamStream简介Stream用法获取流流操作中间操作终端操作Stream简介Stream允许我们以声明式的方式处理数据集合,可以将Stream看作是遍历数据集合的高级迭代器。Stream 与Lambda表达式结合使用,将使编码效率大大提高,可读性增强。注意:Stream与IO中的InputStream/OutputStream是不同的概念操作案例:使用stream将集合中的手机按照序号num从小到大排序:结果:Stream流的操作顺序:Stream语原创 2022-02-23 17:05:41 · 1200 阅读 · 0 评论 -
Java--递归
递归普通方法:递归方法:递归:递归将原本的问题转化为更小的同一问题(也就是函数/方法调用自身)使用递归:代码中先写递归到底(递归结束条件)的情况,再写递归调用先来看一个求累加的问题:1+2+3+…+100最开始的时候我们使用循环去做,从1一直加到100或从100一直加到1package com.company.project.homework;public class homework2 { public static void main(String[] args) {原创 2021-11-12 18:33:17 · 1045 阅读 · 0 评论 -
java-内部类
内部类概念内部类的分类成员内部类局部内部类静态内部类匿名内部类意义概念把类定义在另一个类的内部,该类就被称为内部类。如果在类 Outer 的内部再定义一个类 Inner,此时类 Inner 就称为内部类 (或称为嵌套类),而类 Outer 则称为外部类(或称为宿主类)根据内部类的位置,修饰符和定义方式可以分为成员内部类,静态内部类,局部内部类和匿名内部类内部类的访问内部类可以直接访问外部类的属性与方法外部类需要创建内部类的对象去访问其属性与方法内部类的分类成员内部类局部内部原创 2021-08-09 20:24:17 · 74 阅读 · 0 评论 -
Java-GUI编程
目录GUI编程1. GUI概念2. 容器组件常用容器JFrameJPanel3. 常用组件JButton(按钮)JTextField(文本框)Label(标签)JTextArea(文本域)JPasswordField(密码框)JMenuBar(菜单栏)JMenu(菜单)JMenuItem(菜单项)4. 布局管理器FlowLayoutBorderLayoutGridLayout5. 事件处理6. 对话框GUI编程1. GUI概念GUI(Graphical User Interface)即图形用户界面原创 2021-08-01 17:10:23 · 482 阅读 · 0 评论 -
Java网络编程
网络编程一. 计算机网络1.概念二. IP和端口号IP端口号三. InetAddress类四. 网络通信协议五. Java网络编程六. Socket套接字概述**客户端****服务器端**注意:网络编程 ≠ 网站编程,网络编程是使用套接字socket来达到进程间通信,一般称TC/IP编程一. 计算机网络1.概念计算机网络: 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统二. IP和端口号IPIP 地址:InetAdd原创 2021-07-28 14:27:10 · 152 阅读 · 0 评论 -
Java-IO流
IO流Java--IO流IO流1. 概述2. 节点流输入输出字节流InputStream的常用方法OutputStream的常用方法read()/write(int b)read(byte[] b)/write(byte[] b, int off, int len)输入输出字符流Reader的基本方法Writer的基本方法read()/write(int c)read(char[] cbuf)/write(char[] cbuf, int off, int len)3. 处理流4. Print流5. 对原创 2021-07-27 22:17:49 · 126 阅读 · 0 评论 -
File类
File类File类 主要用于文件和目录的创建、文件的查找和文件的删除等File对象代表磁盘中实际存在的目录或文件.通过构造方法创建一个File对象.构造方法说明1File(File parent, String child)通过给定的父抽象路径名和子路径名字符串创建一个新的File实例2File(String pathname)通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例3File(String parent, String chil原创 2021-07-23 12:17:35 · 97 阅读 · 0 评论 -
Java-集合
Java-集合1. 概述当我们需要保存一组一样(类型相同)的元素的时候,我们应该使用一个容器 来存储,数组就是这样一个容器。 数组有什么缺点?数组一旦定义,长度将不能再变化。然而在我们的开发实践中,经常需要保存一些变长的数据集合,于是,我们需 要一些能够动态增长长度的容器来保存我们的数据。而我们需要对数据的保存的逻辑可能各种各样,于是就有了各种各样的数据结 构。Java中对于各种数据结构的实现,就是我们用到的集合Object [] objs = {false,10,'a',"hello",ne原创 2021-07-20 21:08:08 · 129 阅读 · 0 评论 -
Java--异常
Exception目录Exception1. 概述2. 异常体系3. 常见异常4. 异常处理1. 概述在Java语言中,将程序执行中发生的不正常情况称为“异常”Java程序在执行过程中所发生的异常(运行时一切不正常情况)事件可分 为两类Error 和 ExceptionError错误Excepiton异常原因Java虚拟机无法解决的严重问题编程错误or偶然的外在因素导致的一般性问题实例JVM系统内部错误、资 源耗尽等严重情况数组下标越界 算数规则不合法 网络连原创 2021-07-12 22:53:38 · 175 阅读 · 0 评论 -
Java之Exception
Exception1. 概述在Java语言中,将程序执行中发生的不正常情况称为“异常”Java程序在执行过程中所发生的异常(运行时一切不正常情况)事件可分 为两类Error 和 ExceptionErrorExcepiton原因Java虚拟机无法解决的严重问题编程错误or偶然的外在因素导致的一般性问题实例JVM系统内部错误、资 源耗尽等严重情况数组下标越界 算数规则不合法 网络连接中断如何解决一般不编写针对性的代码进行处理。使用针对性的代码进行处理(t原创 2021-07-07 13:52:52 · 76 阅读 · 0 评论 -
java 日期类
Date/Calendar/ SimpleDateFormat1. Date 日期类表示特定的瞬间,精确到毫秒毫秒值表示1970年1月1日00:00:00.000 GMT之后的毫秒数构造方法//系统当前时间的对象Date d = new Date(); //给定毫秒值的对象Date d = new Date(long d); 示例import java.util.Date;/*日期类 */public class DateDemo { public static v原创 2021-07-04 20:57:39 · 126 阅读 · 0 评论 -
Java多线程
Java多线程1.1 概念多线程指的是程序中包含多个不同的执行单元,一个程序中可以允许多个线程执行不同的任务1.2 使用环境程序需要执行两个及以上的任务需要实现一些等待的任务(输入,文件读写,网络,搜索…)需要一些后台运行的程序1.3优缺点优点:提高程序的响应.提高CPU的利用率.改善程序结构,将复杂任务分为对个线程,独立运行.缺点:线程越多占用内存越多多线程需要协调和管理,所以需要CPU时间跟踪线程多个线程之间对共享资源的竞用访问,需要解决这个问题原创 2021-07-04 20:23:23 · 187 阅读 · 0 评论 -
Java线程
Java线程目录Java线程1、程序、进程、线程2、一般方法与线程3、线程创建2.1继承Thread类2.2实现Runnable接口4、Thread类常用方法4.1 Thread 类构造方法4.2常用方法4.3优先级4.3.1优先级4.3.2调度策略4.3.3优先级静态常量5.线程状态(生命周期)6、线程分类6.1 用户线程与守护线程1、程序、进程、线程程序、进程、线程在主线程中可以创建并启动其他的线程一个进程内的所有线程共享该进程的内存资源2、一般方法与线程main()方法也属于线程(主线原创 2021-06-28 22:29:15 · 139 阅读 · 0 评论 -
StringBuffer
StringBuffer目录StringBuffer1.概述2.示例1.概述类值String不可变(private final char value[])StirngBuffer可变(char[] value)安全多线程操作字符串StringBuilder(Java5)可变(char[] value)不安全(不能同步访问)单线程操作字符串使用String对字符串修改时,会返回新的字符串对象,在内存中会留下副本,若放在循环中,会大大降低程序原创 2021-05-26 09:21:46 · 100 阅读 · 0 评论 -
Array
API—Arrays类目录API---Arrays类1 概述2 示例2.1Arrays.equals()2.2Arrays.sort()2.2.1 自定义对象排序2.3Arrays.BinarySearch()2.4Arrays.copyOf()1 概述Arrays 类是一个数组工具类,在java.util包中,需要使用Arrays类的方法时,导入Arrays类:import java.util.Arrays;其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(s原创 2021-05-25 21:15:27 · 98 阅读 · 0 评论 -
API-Math
Math目录Math1.算术运算2.进位3.随机数Java为开发人员提供了数学计算的Math类,类中封装有许多静态方法,可以直接通过类名调用其中的方法1.算术运算Math.max(int a, int b):返回最大值Math.min(int a, int b):返回最小值Math.abs(double a):返回绝对值Math.pow(a,b):返回a的b次方Math.sqrt(double a):返回平方根Math.cbrt(double a):返回立方根System.out.p原创 2021-05-24 21:28:53 · 121 阅读 · 0 评论 -
正则表达式
Regex(正则表达式)1.概念正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。2.正则表达式符号这里只列举部分/* X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次原创 2021-05-24 20:26:26 · 89 阅读 · 0 评论 -
String
Java API 之 String1、声明//声明方式String s1 = "hello";String s2 = new String("hello");String s1="abc";String s2="abc";/*首先会在字符串常量池中查找,若没有,就在常量池中创建如果常量池中已经存在,就不需要创建,直接返回地址*/System.out.println(s1==s2);//trueSystem.out.println(s1.equals(s2));//true==原创 2021-05-24 19:43:24 · 94 阅读 · 0 评论 -
Object
Object类目录Object类一、Object类简介二、Object类的一些方法一、Object类简介Object类是java.lang包下的核心类(JDK 1.0开始),Object类是所有Java类的祖先(基类)。每个类都默认或显式使用 Object 作为 超类(父类)。所有对象(包括数组)都实现了这个类的方法。public class A extends Object{}//显式继承Object类作为父类public class A {}//默认继承Object类作为父类package原创 2021-05-12 20:51:12 · 83 阅读 · 0 评论 -
基本类型包装类
包装类前言Java为基本数据类型提供了对应的类,这些类称作包装类。数据的包装类可以提供该类最大、最小值查阅和类型转化的功能在介绍Java提供的包装类之前,我们先自己定义一个包装类,以便于我们在使用Java包装类时,更容易理解package Test.apidemo;//定义一个int类型的包装类public class Demo { private final int Int;//int型变量 //构造器 public Demo(int i) { I原创 2021-05-12 19:02:41 · 158 阅读 · 0 评论 -
final关键字
final关键字package JavaSE.JavaOOP.finaldemo;/* final 修饰 类,方法,属性 修饰 类:不能被继承 方法:不能被重写 属性:不能修改属性值 */public class FinalDemo1 { //final属性 final double PI=3.1415926; final int n; final static int m=10; //final static原创 2021-05-12 16:18:02 · 72 阅读 · 0 评论 -
抽象类与接口
抽象类&接口目录抽象类&接口1.抽象类2.接口3.接口与抽象类的异同1.抽象类抽象类: 若一个类没有足够的信息来描绘一个具体对象,这样的类称为抽象类一般用在体系结构的顶层用来进行功能的定义声明package Test.abstractdemo;import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;/* 抽象方法:只有声明,没有实现(没有方法体): 形如 public abstract void d原创 2021-05-11 21:23:31 · 2153 阅读 · 0 评论 -
Java三大特征
Java三大特征(封装/继承/多态)1、封装封装的好处:隐藏信息(权限),提供特定方法访问方便加入控制语句方便修改实现封装的具体表现:属性用private修饰方法用public修饰package JavaSE.JavaOOP.fz;public class Book { /* 私有化属性 */ private String name;//书名 private String author;//作者 private doubl原创 2021-05-10 09:45:14 · 120 阅读 · 0 评论 -
面向对象OOP下
面向对象(OOP)下1、对象与引用在Java中除基本数据类型外,其他都是引用类型。Java中的对象通过引用对其操作。public staitc void main(){ //Book b=new Book();//创建一个Book类的对象b Book b;//对象引用 b=new Book();//对象本身 /* new Book():调用构造方法,在堆里创建一个Book类的对象 Book b:创建了一个Book类型的引用变量 =:将对象引用原创 2021-04-24 22:09:45 · 176 阅读 · 0 评论 -
static关键字
static关键字static:静态/全局static可以修饰变量/方法/内部类/代码块被static修饰的在加载类的同时被加载,独立于任何实例对象,直接使用类名来访问(也可对象访问)原创 2021-04-18 20:56:02 · 74 阅读 · 0 评论 -
面向对象OOP(上)
面向对象OOP(上)1面向过程&面向对象概念:面向对象程序设计(OOP)是一种程序设计的泛型,同时也是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性面向过程(POP): procedure oriented programming 。面向对象(OOP) :object oriented programming 。区别:区别POPOOP编程思想一种以过程为中心的编程思想一类以对象作为基本程序结构单位的原创 2021-04-18 20:55:15 · 201 阅读 · 0 评论 -
数组排序
数组排序(冒泡/选择/插入)在未了解掌握数据结构之前,我们现在可以用数组写出三种排序。目录数组排序(冒泡/选择/插入)一、冒泡排序1.1算法思想:1.2算法原理:1.3代码实现:二、选择排序(直接选择)2.1算法思想:2.2算法原理2.3代码实现三、插入排序3.1算法思想3.2算法原理3.3代码实现一、冒泡排序1.1算法思想:在未排序的一组数中,重复访问未排序的元素,从第一个未排序元素开始,比较相邻两个元素大小,若上一元素大于(小于)下一元素,对调两元素位置,直至每一趟不能再交换(即排序完成)。原创 2021-04-17 23:04:23 · 16005 阅读 · 2 评论 -
Java Array
Java Array一、简介1、概念Java 语言中提供的数组是用来存储固定大小的同类型(基本数据类型/引用数据类型)元素。数组本身是引用类型。数组是同一种数据类型的集合数组中的每个数据称为数组元素,按从0~数据个数-1的索引/下标来访问每个元素2、数组的好处当数据量大时,可以 同时开辟多个空间,语句更加简洁,且提高效率数组中的空间都是连续的,便于查找对于处理数据(增,删,查,改)非常便利3、特点数组中保存引用类型时保存的是对象引用,基本数据类型数组保存基本数据的原创 2021-04-16 10:22:29 · 190 阅读 · 1 评论 -
Java基础语法(下)
Java基础语法(下)文章目录Java基础语法(下)一. if语句二. switch语句if与switch的使用场景三.循环结构1 for循环增强for循环2. while / do while2 1 while2.2 do while3 循环嵌套4 break/continue一. if语句概念: if语句是指编程语言中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用 bool 型变量进行存储,占用一字节。if(表达式1){语句1原创 2021-04-14 09:43:16 · 272 阅读 · 0 评论 -
java基础语法(上)
Java基础语法(上)一.关键字&标识符提示:以下是本篇文章正文内容,下面案例可供参考1.关键字 Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器 有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 书写时必须注意关键字为小写,Java中严格区分大小写关键字按照作用不同可分为:访问控制类方法变量修饰符程序控制错误处理原创 2021-04-12 23:14:14 · 119 阅读 · 2 评论 -
冒泡排序法(Bubble Sort)
冒泡排序法Bubble Sort一、冒泡排序基本思想二、冒泡排序步骤三、动图演示正序最快,倒序最慢(可倒序循环)四、代码示例总结文章目录一、冒泡排序基本思想二、冒泡排序步骤三、动图演示正序最快,倒序最慢(可倒序循环)四、代码示例总结一、冒泡排序基本思想两两比较相邻记录的元素,如果反序则交换,直到没有反序的记录为止。二、冒泡排序步骤1.从第一个元素开始,比较相邻的元素。如果第一个比第二个大,就交换他们两个的位置2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后(第一次循环原创 2021-03-29 22:14:19 · 1320 阅读 · 0 评论 -
Java笔记(第一章)
Java笔记第一章Java简介为什么学习Java开发?Java语言的发展史Java语言的特点JAVA语言体系结构Java语言的运行机制Java语言运行环境的搭建与配置前言一、Java简介二、为什么学习Java开发?三、Java语言发展史1.起源:2.创始人:3.变革:Java语言的特点:四、Java语言体系结构五、Java语言运行机制六、Java语言运行环境的搭建与配置七、开发第一个Java程序Java简介为什么学习Java开发?Java语言的发展史Java语言的特点JAVA语言体系结构Java原创 2021-03-29 20:59:00 · 407 阅读 · 4 评论