JavaSE
JavaSE学习笔记
yangen2018
这个作者很懒,什么都没留下…
展开
-
Java常用类
Math在java.lang包下面,说明直接使用,不用导包package java.lang;final修饰类,这个类(Math)不能被继承public final class Math {}构造器私有化,不能创建Math类的对象private Math() {} //Don't let anyone instantiate this class.Math math = new Math(); //无法执行Math内部的所有的属性,方法都被static修饰:类名.直接调原创 2022-03-15 16:14:00 · 715 阅读 · 0 评论 -
捕获和抛出异常
异常处理五个关键字try、catch、finally、throw、throwspackage 异常;public class Demo01 { public static void main(String[] args) { int a = 1; int b = 0; try { //try监控区域 System.out.println(a/b); }catch (ArithmeticException原创 2021-07-06 22:26:02 · 107 阅读 · 0 评论 -
Error和Exception
什么是异常例子实际工作中遇到的情况不可能都是完美的,比如:用户输入不一定符合要求、程序要打开某个文件二这个文件不存在或格式不对、要读取的数据可能不存在或者是空的、程序跑着跑着内存或硬盘满了等等。定义软件程序在运行过程中,非常可能遇到这些异常问题,这些问题就叫异常(Exception),指的是程序运行过程中出现的不期而至的各种状况。简单分类检查性异常最具代表性的就是用户错误或问题引起的异常,这是程序员无法预见的。运行时异常是可能被程序员避免的异常,与检查性异常相反,运行原创 2021-07-06 22:23:27 · 68 阅读 · 0 评论 -
抽象类与接口
先简单说一下static关于 staticstatic 修饰的方法及属性是同类一起加载的,所以可以直接使用类名进行调用。其外,类中非静态的方法也可以调用静态的方法和属性,但是静态的方法不能调用非静态的方法和属性。private static int age;private double score;public void print(){ System.out.println(Student.age);}public void study(){ read();}publi原创 2021-05-07 16:19:46 · 73 阅读 · 0 评论 -
多态
定义: 同一个方法可以根据发送对象的不同采用多种不同的行为方式。一个对象的实际类型是确定的,但是可以指向的对象的引用的类型有很多。意义: 可以实行动态编译,使得可扩展性增强。多态存在的条件:有继承关系子类重写父类方法父类引用指向子类对象,Father f1 = new son(); 但有些方法不用被重写:static 方法,属于类,它不属于实例final 表示常量private 私有方法也不能被重写注意:多态是方法的多态,属性没有多态性父类和子类之间要有联系,否则会原创 2021-05-07 16:17:40 · 81 阅读 · 0 评论 -
继承
继承相关概念继承的本质是对一批类的抽象,从而对现实时间更好的建模继承使用的关键字 extends 的意思是扩展,子类是父类的扩展。Java 中只有单继承,没有多继承。继承是类与类之间的一种关系。此外,类与类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,用关键字 extends 表示。子类和父类之家,从意义上讲应该具有"子类 is a 父类"的关系。子类继承了父类,就会有父类的全部方法。在 Java原创 2021-05-07 16:15:19 · 68 阅读 · 0 评论 -
封装
改露的露,改藏得藏程序设计要追求 “高内聚,低耦合”。高内聚就是类的内部数据操作细节由自己完成,不允许外部干涉;低耦合就是尽量暴露少量的方法给外部使用。封装:(数据的隐藏)禁止直接访问一个对象中数据的实际表示,而是通过操作接口来访问,这称为信息隐藏。一句话:属性私有(private),get/set封装的意义:提高程序的安全性,保护数据(比如通过判断条件排除非法数据)隐藏代码的实现细节(比如用户只能设置年龄,并不知道类中具体如何实现)统一接口(比如设置数据统一使用set,获取数据统一使用g原创 2021-05-07 16:14:13 · 81 阅读 · 0 评论 -
类与对象
类与对象的关系从认识论角度考虑是现有对象后有类,对象是具体的事物,类是抽象的、是对对象的抽象。从代码运行角度考虑是先有类,后有对象,类是对象的模板。类是一种抽象的数据类型,它是对某一类事物的整体描述/定义,但是并不能代表某一具体事物动物、植物、手机、电脑…Person类、Pet类、Car类等,这些类都是用来描述和定义某一类事物具备的特点和行为对象是抽象概念的具体实例如张三就是人的一个具体实例,张三家的旺财就是狗的一个具体实例能够体现出特点,展现出功能的是具体实例,而不单纯是一个原创 2021-05-07 16:11:47 · 108 阅读 · 0 评论 -
什么是面向对象
面向过程与面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会思考解决问题需要哪些类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题。对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。什么是面向对象面向对象编原创 2021-05-07 16:10:42 · 63 阅读 · 0 评论 -
冒泡排序
排序算法总的来说有8种,冒泡排序是最基础的排序算法之一。原理:两层循环,外轮冒泡轮数,里层依次比较,时间复杂度O(n^2)。比较数组中两相邻元素,如果第一个数比第二个数大,则交换他们的位置每次比较,都会产生一个最小会最大的数下一轮则可以减少一次排序依次循环,直到结束package Java数组;import java.util.Arrays;public class Demo07 { public static void main(String[] args原创 2021-03-11 15:39:32 · 83 阅读 · 0 评论 -
稀疏数组
稀疏数组是一种数据结构。需求: 如编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题: 因为类似于五子棋这样的二维数组的很多默认值是0,因此记录了很多没有意义的数据。解决: 稀疏数组。当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共几列几行,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模图示: 左边是原始数组,右边是稀疏数组代码:package Java数组;pub原创 2021-03-11 15:36:39 · 85 阅读 · 0 评论 -
Java Arrays类
数组工具类 java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但 API 中提供了一个工具类 Arrays 类供我们使用,从而可以对数据对象进行一些基本的操作。学会查看 JDK 帮助文档,里面对各种类的描述十分详细。Arrays 类中的方法都是 static 修饰的静态方法,在使用时可以直接使用类名进行调用,而不用使用对象来调用。(其实是不能使用)Arrays 类具有以下常用功能:给数组赋值:fill 方法对数组排序:sort 方法,升序排列比较数组:equal.原创 2021-03-11 15:35:04 · 89 阅读 · 0 评论 -
Java二维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的的一维数组,其每一个元素都是一个一维数组。二维数组int a[][] = new int[2][4];解析:上面的二维数组可以看成是一个两行4列的数组。二维数组可以看成是对一维数组的扩展,定义了一个二维数组后,之前的一维数组就好像变成了数组名一样,存放的也不再是具体的值,而是它扩展开的二维数组的地址。示意图:package Java数组;public class Demo04 { public static void mai原创 2021-03-11 15:32:41 · 110 阅读 · 0 评论 -
Java数组的内存分析及三种初始化
Java内存分析Java内存1. 堆存放 new 的对象和数组可以被所有的线程共享,不会存放别的对象引用2. 栈存放基本变量类型(会包含基本类型的具体数值)引用对象的变量(会存放这个引用在堆里面的具体地址)3. 方法区可以被所有的线程共享包含了所有的 class 和 static 变量数组的三种初始化静态初始化int[] a = {1,2,3};Man[] men = {new Man(1,1),new Man(2,2)}; //自定义的类数组初始化动态原创 2021-03-11 15:30:58 · 129 阅读 · 0 评论 -
Java数组概述
定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据成为一个数组元素,每个数组元素可以通过下标来访问声明创建声明首先必须声明数组变量,才能在程序中使用数组,语法如下:dataType[] arrayRefVar; //首选方法//或dataType arrayRefVar[]; //效果相同,但不建议使用,这是早期为了适应c/c++采用的声明方式创建Java 使用 new 操作符来创建数组,语法如下:dataTyp原创 2021-03-11 15:26:33 · 130 阅读 · 0 评论 -
常用电脑快捷键
整理常用的一些快捷键,快捷键的使用可以提高效率Windows+D 回到桌面alt+Tab 切换程序alt+F4 关闭当前程序Windows+L 锁屏ctrl+A 全选(只是选中,复制需要再次进行复制操作)ctrl+Z 撤销上一步操作ctrl+C 剪切ctrl+S 保存shift+delete 永久删除Windows+D 打开运行命令Windows+E 打开我的电脑...原创 2021-02-22 17:46:04 · 65 阅读 · 0 评论 -
MarkDown快捷键
MarkDown快捷键学习标题等级#+空格,表示一级标题##+空格,表示二级标题以此类推…字体粗体:文字两边+** 如,粗体斜体:文字两边+*斜体加粗:文字两边+***删除线:文字两边+~~引用快捷键:>+空格分割线快捷键:—或***插入图片1.插入本地图片快捷键:![图片名称](地址)(使用英文输入法)2.插入网络图片快捷键与插入本地图片一样;优点是可随时更改,不用关心本地位置的变化超链接快捷键:[用于显示的文字]+(地址)原创 2021-02-15 11:21:12 · 206 阅读 · 0 评论 -
递归
递归: A 方法调用 A 方法,就是自己调用自己。递归思想: 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出接替过程所需要的多次重复计算,大大地减少了程序代码量。递归的能力在于用有限的语句来定义对象的无限集合。递归结构:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法。package Java方法;public class Demo04 { public static void原创 2021-03-05 22:58:25 · 79 阅读 · 0 评论 -
可变参数
JDK 1.5 开始,Java 支持传递同类型的可变参数给一个方法。用法:在方法声明中,在指定参数类型后加一个省略号(…)注意:一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。例子:package Java方法;public class Demo03 { public static void main(String[] args) { printMax(2,3,3,5,64,22); printMax(new d原创 2021-03-05 22:55:47 · 69 阅读 · 0 评论 -
Java方法重载
定义: 重载就是在一个类中,有相同的函数名称、但形参不用的函数。方法重载的规则:方法名称必须相同参数列表必须不同(个数不同、或类型不同、或参数排列顺序不同)方法的返回类型可以相同也可以不同仅仅返回类型不同不足以成为方法的重载实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。package Java方法;public class Demo02 { public static void main(Stri原创 2021-03-05 22:53:16 · 84 阅读 · 0 评论 -
Java方法的定义和调用
什么是方法如 System.out.println(),System 是类,out是该类的对象, println()就是这个对象的一个方法。Java方法是语句的集合,它们在一块可以执行一个功能:方法是解决一类问题的步骤的有序集合方法包含于类或对象中方法在程序中被创建,在其它地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法的时候,最好保持方法的“原子性”,就是一个方法只完成一个功能,这样有利于后期的扩展。package Java方法;public原创 2021-03-05 22:50:57 · 274 阅读 · 0 评论 -
break和continue
break在任何循环语句的主体部分,均可用 break 控制循环的流程。break 用于强行退出循环,不执行循环中剩余的语句。(break 也可在 switch 语句中使用)package 流程控制;public class Demo15 { public static void main(String[] args) { for (int i=0; i<50; i++){ System.out.println(i); i原创 2021-03-02 12:27:47 · 93 阅读 · 0 评论 -
循环结构
while 循环while 是最基本的循环,语法为:while(布尔表达式){ //循环内容}只要布尔表达式为 true,循环就会一直执行下去。大部分情况需要循环停止,因此需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器的请求响应监听。循环条件一直为 ture 就会造成无限循环【死循环】,正常业务应尽量避免死循环,否则可能会造成程序崩溃。do…while 循环对于 while 语句而言,如果不满足条件,则不能进入循环。但有时我们需要即使不满足原创 2021-03-02 12:26:01 · 1144 阅读 · 0 评论 -
如何通过IDEA看Java源码
通过程序看源码也将反编译,有很多辅助软件可以做,这里介绍使用 IDEA 查看源码的方式。将写的程序生成的字节码文件(class文件,前面的笔记介绍过)放到与该程序相同目录下。class文件一般存放在一个名为"out-production"的文件夹下,在"Project Structure"中可以找到该路径。放在一起后在 IDEA 中,可以在该程序旁边看到一个带有 01 字样的同名 class 文件直接双击该 class 文件便可打开,这就是该程序的源码。图示:1.从 File -> Pr原创 2021-03-01 16:17:09 · 2895 阅读 · 11 评论 -
选择结构
if选择结构if单选择结构很多时候需要判断一个东西是否可行,然后才去执行,这样的过程在程序中用if语句表示。语法:if(布尔表达式){//如果布尔表达式为true将执行语句}if双选择结构在一种情况下,程序将执行一种操作,这种情况不满足,则执行另一个操作。这种情况下一个if就无法实现,需要有两个判断,需要一个双选择结构,就有了if-else结构。语法:if(布尔表达式){//如果布尔表达式为true将执行该语句}else{//如果布尔表达式为flase将执行该语句}if多选择结原创 2021-03-01 16:15:42 · 216 阅读 · 0 评论 -
顺序结构
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句和语句之间,框与框之间是按从上到下的顺序进行的,它是由若干依次执行的处理步骤组成的,是任何一个算法都离不开的基本算法结构。package 流程控制;public class Demo05 { public static void main(String[] args) { System.out.println("学"); System.out.print原创 2021-03-01 16:14:34 · 83 阅读 · 0 评论 -
用户交互Scanner
Scanner对象java.util.Scanner 是 Java5 的新特征,可以通过 Scanner 类来获取用户的输入。基本语法Scanner s = new Scanner(System.in);通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取之前一般需要使用 hasNext() 和 hasNextLine() 判断是否还有输入的数据。next() 与 nextLine() 的区别next()一定要读取到有效字符后才可以结束输入原创 2021-03-01 16:13:13 · 70 阅读 · 0 评论 -
包机制和JavaDoc文档
包机制为了更好的组织类,Java提供了包机制(类似于文件夹功能),用于区别类名的命名空间。包语句的语法格式为:package pkg1[.pkg2[...]]一般利用公司域名倒置作为包名,如www.baidu.com 开发的包名定义为com.baidu.www为了能够使用某一个包的成员,需要在Java程序中明确导入该包,使用某个包成员时,不导入相关包会报错。使用import语句可以完成此功能。import package1[.package2[...]]按住ctrl,再点击类名,可以查原创 2021-02-22 18:37:05 · 111 阅读 · 0 评论 -
运算符
基本运算符算数运算符 +、-、*、/(取商)、%(取余/取模) 10/20 = 0;10%20 = 10;赋值运算符=关系运算符<、>、>=、<=、==、!=关系运算符返回结果是布尔型:true or false。补充:ctrl + D:复制当前行到下一行运算中的数据类型变化:多个数运算中,如果都是整数类型,有一个是Long类型,则结果也是Long,否则都是int类型。public class Demo05 {原创 2021-02-22 18:34:36 · 73 阅读 · 0 评论 -
变量、常量及作用域
变量变量:可以变化的量,在程序语言中,变量由自己定义,用来存放各种类型的值。Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。//定义一个变量的格式type varName [=value]; //数据类型 变量名 = 值;注意:每个变量都有类型,既可以是基本类型,也可以是引用类型。变量名必须是合法标识符。变量声明是一条完整语句,语句必须以分号结尾。变量类别类变量实例变量从属于对象publi原创 2021-02-22 18:32:06 · 233 阅读 · 0 评论 -
类型转换
由于Java是强类型语言,因此进行一些运算的时候,需要用到类型转换。Java数据类型级别顺序:低 - - - > 高:byte、short、char --> int --> long --> float --> double运算中,不同类型的数据需要先转换为同一类型,然后才能进行运算。类型转换分为两种:强制类型转换强制转换发生在数据等级为高 -->低 时,方法:(类型)变量名。比如:int i = 128;byte b = i; //这种情况下会报原创 2021-02-22 18:29:49 · 280 阅读 · 0 评论 -
数据类型(面试知识点)
强数据类型要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,如Java、.NET、c/c++。弱数据类型与强数据类型相对,是数据类型可以被忽略的语言,一个变量可以赋予不同数据类型的值,如VB、PHP。Java数据类型基本数据类型(primitive type)1.数值类型整数类型byte占1个字节,范围:-128-127short占2个字节,范围:-32768-32767int占4个字节,范围:-2147483648-2147483647long占8个字节,范围:-92原创 2021-02-22 18:28:24 · 174 阅读 · 0 评论 -
注释、标识符及关键字
注释、标识符、关键字注释在项目合作中,书写注释非常重要,要培养写注释的习惯。Java中的注释有三种:1.单行注释 用//表示2.多行注释 用/* */表示3.文档注释 用/** */表示,中间会有单独星号,可以加入参数IDEA中注释的颜色、字体、大小等的设置路径为:File->Settings->Editor->Color Scheme->Java->Comments,3种注释英文分别对应于Line Comment、Blo原创 2021-02-22 18:26:39 · 159 阅读 · 0 评论 -
编译型和解释型
编译型可以理解为将编写的代码一次性转成字节码文件,如C/C++语言为编译型语言优点:执行速度更快缺点:如果源码有修改,需要重新编码解释型可以理解为将代码一点点的解释为字节码,如JavaScript、Python等脚本语言为解释性语言优点:对更新性支持度高缺点:效率相对差点,但是随着应届发展,效率在被弥补 两个类型的解释可以简单的用翻译的例子理解,编译型相当于直接将一本书翻译成一本书,解释型相当于翻译官即时翻译。 Java语言则兼顾两个特性。以上..原创 2021-02-22 18:25:05 · 160 阅读 · 0 评论 -
Java特性和优势
简单性:可以理解为C/C++的语法纯净版,没有头文件、指针,不用分配内存等,且语法基于C面向对象:将重点放在对象及对象之间的接口上,模拟人的思维,是现今最重要的编程方式可移植性:真正的跨平台,一次编写,到处运行高性能:比如即时编译,可以使没写代码运行性能接近C++分布式:Java一开始就是为网络分布式环境设计的,可以处理很多TCPIP协议上的东西,通过url 访问网络资源就像访问本地一样动态性:Java本身不具有动态性,但是通过反射机制获得动..原创 2021-02-22 18:24:23 · 84 阅读 · 0 评论 -
Java三大版本及JDK、JRE和JVM
Java三大版本JavaSE:标准版(桌面程序、控制台开发),基础JavaME:嵌入式开发(手机,小家电),几乎死亡JavaEE:企业级开发(Web端、服务器开发)关于JDK、JRE、JVMJDK:Java Development Kit,Java开发者工具包JRE:Java Runtime Environment,Java运行环境JVM:Java Virtual Machine,Java虚拟机...原创 2021-02-22 18:20:03 · 312 阅读 · 0 评论