Java基础
Remote_Li
这个作者很懒,什么都没留下…
展开
-
内部类
内部类就是在一个类的内部在定义一个类。比如:A类中定义了一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了成员内部类public class Outer{ private int id = 10; public void out(){ System.out.println("外部类方法"); } //成员内部类 public class Inner{ public void in(){ ..原创 2021-04-02 10:33:02 · 47 阅读 · 0 评论 -
接口
接口(interface)就是规范,定义的是一组规则,体现到是“如果你是…则必须能…”的思想接口的本质是契约OO(面向对象(Object Oriented))的精髓,是对对象的抽象不能被实例化,没有构造方法//interface定义的关键字,接口都需要有实现类public interface UserService{ //接口中定义的属性都是常量 public static final ing AGE = 10;//一般不用 //接口中所有定义其实都是抽象的 .原创 2021-04-02 10:32:29 · 51 阅读 · 0 评论 -
抽象类
abstract修饰符可以用来修饰方法也可以用来修饰类抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类抽象类:不能用new关键字来创建对象,它是用来让子类继承的抽象方法:只有方法的声明,没有方法的实现,它是用来让子类实现的子类继承抽象类那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类public abstract class Action{ //abstract抽象方法,只有方法名字,没有方法实现 public abstract void do.原创 2021-04-02 10:31:42 · 51 阅读 · 0 评论 -
static关键字
static修饰的方法和变量可以直接用类名.来调用static静态代码块public class Person{ //赋初始值 { System.out.println("匿名代码块"); } //最先执行,只执行一次 static{ System.out.println("静态代码块"); } public Person{ System.out.println("构造.原创 2021-04-02 10:31:09 · 34 阅读 · 0 评论 -
多态
同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多多态存在的条件:有继承关系子类重写父类方法父类引用指向子类:Father f = new Son();多态是方法的多态,属性没有多态性public class Person{ public void run(){ System.out.println("person run"); }}public class Student.原创 2021-04-02 10:30:29 · 49 阅读 · 0 评论 -
继承
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模extends意思是“扩展”,子类是父类的扩展Java中类只有单继承,没有多继承继承是类和类之间的一种关系,除此之外还有依赖、组合、聚合等继承关系的两个类,一个是子类(派生类),一个是父类(基类),子类继承父类用关键字extends来表示子类和父类之间,从意义上来说是“is a”的关系只能继承public修饰的方法在Java中,所有的类都直接/间接继承了Object类final修饰的类无法被继承Person类:public c.原创 2021-04-02 10:29:54 · 49 阅读 · 0 评论 -
封装
高内聚:类的内部数据操作细节自己完成,不允许外部干涉低耦合:仅暴露少量的方法给外部使用封装(数据的隐藏):通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏属性私有,get/set意义:提高程序的安全性,保护数据隐藏代码的实现细节统一接口系统的可维护性增加public class Student{ //IDEA中Alt + Insert快捷生成 //属性私有 private String name; pr..原创 2021-04-02 10:27:57 · 51 阅读 · 0 评论 -
面向对象编程(OOP)
本质:以类的方式组织代码,以对象的组织(封装)数据抽象三大特征:封装、继承、多态类与对象类是一种抽象的数据类型,它是某一类事物整体描述/定义,但是并不能代表某一个具体的事物。对象是抽象概念的具体实例构造器一个类即使什么都不写,也会存在一个方法必须和类的名字相同必须没有返回类型,也不能写void作用:使用new关键字,本质就是在调用构造器用来初始化值注意点:一旦定义了有参构造,无参构造就必须显示定义public class Person{ ..原创 2021-04-02 10:27:20 · 40 阅读 · 0 评论 -
冒泡排序
总共有八大排序,冒泡排序是最出名的排序算法之一冒泡排序使用两层循环,外层冒泡轮数,里层依次比较冒泡排序的时间复杂度为O(n²)冒泡排序逻辑比较数组中两个相邻的元素,如果第一个比第二个大,交换位置每次比较都会产生一个最大或者最小的数下一轮则减少依次排序一次循环直到结束int[] a = {1,2,5,4,6,89,7,3};//临时变量int temp = 0;//外层循环,判断要走多少次for(int i = 0; i < a.length-1; i++){ .原创 2021-04-02 09:43:13 · 36 阅读 · 0 评论 -
Arrays类
数组的工具类java.util.ArraysArrays类中的方法都是static修饰的静态变量,在使用的时候可以直接使用类名调用,不需要(但是可以)使用对象来调用Arrays常用功能给数组赋值:通过fill方法对数组排序:通过sort方法,按升序比较数组:通过equals方法来比较数组中元素值是否相等查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作例:import java.util.Arrays...int[] a = {1,2,5,4..原创 2021-04-02 09:43:09 · 33 阅读 · 0 评论 -
稀疏数组
当一个数组中大部分元素都是0,或者为同一值的数组时,可以使用稀疏数组来保存该数组稀疏数组的处理方式为:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模//1.创建一个二维数组 11*11int[][] a = new int[11][11];a[1][2] = 1;a[2][3] = 2;//输出原始数组System.out.println("原始的数组");for(int[] x : a){ for(i.原创 2021-03-31 17:52:56 · 37 阅读 · 0 评论 -
数组
声明与创建语法:数组类型[] 数组名; //首选或数组类型 数组名[];int[] nums; //定义声明一个数组nums = new int[5]; //创建一个数组,这里面可以存放5个int类型的数字//数组索引是从0开始的nums[0] = 1;nums[1] = 2;nums[2] = 3;nums[3] = 4;nums[4] = 5;System.out.println(nums[0]); //1//计算所有元素的和int sum = 0;//获取数组的长..原创 2021-03-31 17:51:17 · 56 阅读 · 0 评论 -
值传递与引用传递
值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递:是指在调用函数时将实际参数的地址直接传递到函数中(的形参),那么在函数中对参数所进行的修改,将影响到实际参数。Java其实还是值传递的,只不过对于对象参数,值的内容是对象的引用例1:值传递public class Demo01 { public static void main(String[] args) { int x = 10; method(x); ..原创 2021-03-31 11:55:43 · 62 阅读 · 0 评论 -
方法
Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其它地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法的时候最好保持方法的原子性,即一个方法只完成一个功能,这样有利于后期的扩展Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法(方法头+方法体): 修饰符 返回值类型 方法名(参数类型 参数名){ ..原创 2021-03-31 11:52:25 · 51 阅读 · 0 评论 -
循环结构
while循环语法:while(布尔表达式){ //循环内容}例:计算1+2+3+……+100int i = 0;int sum = 0;while(i <= 100){ sum = sum + i; i++;}System.out.println(sum);do……while循环语法:do{ //代码语句}while(布尔表达式);while与do……while的区别while先判断后执行,do……while..原创 2021-03-31 11:56:05 · 43 阅读 · 0 评论 -
用户交互Scanner
基本语法Scanner s = new Scanner(System.in);通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据例://创建一个扫描器对象,用于接收键盘数据Scanner s = new Scanner(Syatem.in);System.out.println("使用NextLine方法接收:");//判断用户有没有输入字符串if(s.hasNe..原创 2021-03-31 11:56:12 · 64 阅读 · 0 评论 -
if、switch选择结构
if单选泽结构语法:if(布尔表达式){ //如果布尔表达式为true将执行的语句}if双选择结构语法:if(布尔表达式){ //如果布尔表达式为true将执行的语句}else{ //如果布尔表达式为false将执行的语句}if多选择结构语法:if(布尔表达式 1){ //如果布尔表达式 1为true将执行的语句}else if(布尔表达式 2){ //如果布尔表达式 2为true将执行的语句}else if(布尔表达式 3){ ..原创 2021-03-31 11:56:21 · 77 阅读 · 0 评论 -
JavaDoc生成文档
javadoc命令是用来生成自己的api文档的参数信息@author 作者名@version 版本号@since 指明需要最早使用的jdk版本@param 参数名@return 返回值情况@throws 异常抛出情况文档生成命令行方法:进入类所在的路径,dos窗口输入:javadoc -encoding UTF-8 -charset UTF-8 类名.java生成的index.html即为文档首页IDEA方法:第一步:在工具栏中找到 Tool,然后再子菜单中找..原创 2021-03-31 11:55:58 · 83 阅读 · 0 评论 -
运算符
1 java语言支持的运算符算数运算符:+、-、*、/、%、++、–赋值运算符:=关系运算符:>、<、>=、<=、==、!=、instanceof逻辑运算符:&&、||、!位运算符(了解):&、|、^、~、>>、<<、>>>条件运算符:? :扩展赋值运算符:+=、-=、*=、/=例:int a = 3;int b = a++; //执行完这行代码后,先给b赋值,再自增原创 2021-03-31 11:56:28 · 35 阅读 · 0 评论 -
变量与常量
变量的作用域类变量:static修饰,从属于类实例变量:从属于对象;如果不自行初始化,将默认使用这个类型的默认值byte、short、int、long默认值为0float、double默认值为0.0boolean默认值为falsechar默认值为空格除了基本数据类型,其他的默认值都是null局部变量:方法内有效,必须声明和初始化例:public class A{ static int x = 0; //类变量 String str = "hello worl..原创 2021-03-31 11:56:33 · 45 阅读 · 0 评论 -
类型转换
由于Java是强类型语言,所以在进行有些运算的时候,要进行类型转换 低-------------------------------------------------->高(位数由低到高,浮点数的优先级大于整数) byte, short, char --> int --> long --> float -->double运算中,不同类型的数据先转换成同一类型,然后进行运算例:int i = 128;//强制转换:(类型)变量名 高 --> ..原创 2021-03-30 13:45:48 · 50 阅读 · 0 评论 -
Java数据类型
强类型语言:要求变量的使用要严格符合规范,所有的变量都必须先定义后才能使用,例如:Java、.net 、Python、C++等语言弱类型语言:某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。例如:vb 、PHP、javascript等语言1 Java的数据类型可分为两大类1.1 基本数据类型数值类型整数类型byte 占1个字节,范围:-128-127short 占2个字节,范围:-32768-32767int 占4个字节,范围:-214748.原创 2021-03-30 13:44:08 · 122 阅读 · 0 评论 -
标识符与关键字
1 标识符所有的标识符应以字母(A-Z或a-z),美元符($)或下划线(_)开头首字符之后可以使用字母(A-Z或a-z),美元符($),下划线(_)或数字的任何字符组合不能使用关键字作为变量名和方法名标识符是大小写敏感的可以使用中文和拼音命名,但是不建议这样做2 关键字abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenum原创 2021-03-30 13:42:24 · 40 阅读 · 0 评论 -
Java注释
单行注释//文字多行注释/*注释*/文档注释/***@Author:xxx*/原创 2021-03-30 13:41:14 · 45 阅读 · 0 评论 -
Java语言的特性
1、Java语言的特性1.1、简单性 在Java语言当中真正操作内存的是:JVM(Java虚拟机) 所有的java程序都是运行在Java虚拟机当中的。 而Java虚拟机执行过程中再去操作内存。 对于C或者C++来说程序员都是可以直接通过指针操作内存的。 C或者C++更灵活,可以直接程序员操作内存,但是要求程序员技术精湛。 C语言或者C++更有驾驭感。 Java语言屏蔽了指针概念,程序员不能直接操作指针,或者说程序员 不能直接操作内存。这种方式有优点也有缺点: 优点:不容易导致内存泄漏。原创 2021-03-30 12:12:15 · 179 阅读 · 0 评论 -
Java程序的加载与执行
java程序非常重要的两个阶段: 编译阶段 运行阶段注意:java程序员直接编写的java代码(普通文本)是无法执行被JVM识别的。java程序员编写的java代码这种普通文本必须经过一个编译,将这个“普通文本代码”变成“字节码”,JVM能够识别“字节码”。java代码这种普通文本变成字节码的过程,被称为:编译。java代码这种普通文本被称为:java源代码。(你编写的代码是源代码),源代码不能直接执行,需要先进行编译,生成源代码对应的“字节码”,JVM可以识别的是字节码。编译..原创 2021-03-30 11:57:26 · 209 阅读 · 0 评论 -
JDK、JRE、JVM三者之间的关系
JDK:Java开发工具箱JRE:java运行环境JVM:java虚拟机JDK包括JRE,JRE包括JVM。JVM是不能独立安装的。JRE和JDK都是可以独立安装的。有单独的JDK安装包。也有单独的JRE安装包。没有单独的JVM安装包。安装JDK的时候:JRE就自动安装了,同时JRE内部的JVM也就自动安装了。安装JRE的时候:JVM也就自动安装了。问题1:假设你在软件公司开发了一个新的软件,现在要去客户那边给客户把项目部署一下,把项目跑起来,你需要安装JDK吗?只需要安装JRE原创 2021-03-30 11:40:21 · 95 阅读 · 0 评论 -
计算机编程语言及Java
计算机编程语言发展史? 第一代语言:机器语言 程序员直接编写二进制,一串二进制代码,例如:10010100010010001000.... 计算机是由电流驱动的,电流只能表示两种状态:正、负。 而正可以对应1,负可以对应0. 10010010101010...这些二进制码正好和自然世界中的十进制存在转换关系。 所以很巧妙的是:计算机可以模拟现实世界当中的事物。 机器语言时期非常具有代表性的就是:打孔机。 缺点: 纸带不容易保存 另外打孔的时候是人为操作的,孔有可能打错了。孔打错..原创 2021-03-30 11:33:20 · 313 阅读 · 0 评论