![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
还在减肥的政宗君
这个作者很懒,什么都没留下…
展开
-
JAVA接口的定义与实现
接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法专业的约束!约束和实现分离:面向接口编程接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。0接口的本质是契约,就像我们人间的法律一样,制定好后大家都遵守。OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比原创 2021-01-30 13:55:21 · 154 阅读 · 0 评论 -
Java抽象类
抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰符,那么该类就是抽象类。抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。子类继承抽象类,那么就必须实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。package oop.demo08;//abstract 抽象类:类extends: 单原创 2021-01-29 18:58:22 · 78 阅读 · 0 评论 -
static静态
static静态方法和类一起加载,可以直接调用static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象,也能使用属性和调用方法!static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次.为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。因此,很多时候会将一些原创 2021-01-29 18:57:19 · 688 阅读 · 0 评论 -
JAVA多态
多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)多态存在的条件有继承关系子类重写父类方法父类引用指向子类对象注意:多态是方法的多态,属性没有多态性。instanceof (类型转换) 引用类型多态注意事项:多态是方法的多态,属性没有多态父类和子类,有联系 类型转换异常!ClassCastException!存在条件:继承关系,方法需要重写,父类引用指向子类对象原创 2021-01-29 18:44:27 · 82 阅读 · 0 评论 -
JAVA继承
继承继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。extends的意思是“扩展”。子类是父亲的扩展。JAVA中类只有单继承,没有多继承!继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有“is a“的关系object类super方法重写super调用父类的方法s原创 2021-01-27 15:13:18 · 103 阅读 · 0 评论 -
JAVA封装
封装该露的露,该藏的藏我们程序设计要追求**“告内聚,低耦合”**。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏)通常,应禁止直接访问一个对象只数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住这句话就够了:属性私有,get/setpackage oop.demo03;//类 private:私有public class Student { //属性私有 private原创 2021-01-27 15:12:14 · 62 阅读 · 0 评论 -
类与对象的关系
类与对象的关系类是种抽象的数据类型,它是对某一事物整体描述/定义,但是并不能代表某一个具体的事物。动物、植物、手机、电脑…Person类、Pet类、Car类等、这些都是用来描述/定义某一类具体的事物应该具备的特点和行为对象是抽象概念的具体实例张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。创建于初始化对象使用new关键字创建对象使用new关键字创建的时候,除了分配内存空间之外,还会给创原创 2021-01-22 00:42:57 · 58 阅读 · 0 评论 -
面向对象
面向对象编程Java的核心思想就是OOP(Object Oriented Programming)面向过程(流程)&面向对象(框架)面向过程思想(线性思维)步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。面向对象适合处理复杂的问题,适合处理需要多人协作的问题!属性+方法=类对于描述复原创 2021-01-22 00:42:04 · 114 阅读 · 0 评论 -
Java稀疏数组
稀疏数组(是一种数据结构)需求:编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题:因为该数组的很对值是默认值0,因此记录了很多没有意义的数组。解决:稀疏数组稀疏数组介绍当一个数中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而小程序的规模如小图:左边是原始数组,右边是稀疏数组package array;publi原创 2021-01-20 00:40:36 · 82 阅读 · 1 评论 -
Java冒泡排序
冒泡排序冒牌排序无疑是最为出名的排序算法之一,总共有八大排序!冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)方。//冒泡排序 /* 1.比较数组中相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 2.每一次比较,都会产生一个最大,或者最小的数字。 3.下一轮则可以少一次排序! 4.依次循环,直到结束! */package原创 2021-01-18 18:39:31 · 114 阅读 · 2 评论 -
Arrays类
Arrays 类数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。查看JDK班助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)具有以下常用功能:给数组赋值:通过fill方法。对数组排序:通过sort方法,按升序。比较数组:通过equals方法比较数组中元素原创 2021-01-18 00:22:34 · 85 阅读 · 1 评论 -
Java数组详解
数组array [əˈreɪ]数组概述数组是相同类型数据有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar;//首选的方法dataType arrayRefVar[];//效果相同,但不是首选方法Java语言使用new操作符来创建数组,语法如下:d原创 2021-01-18 00:21:42 · 82 阅读 · 0 评论 -
Java Method
Method(方法)何谓方法?System.out.println() ,那么它是什么呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或者对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。回顾:方法的命名规则?驼峰命名规则package method;pub原创 2021-01-15 00:59:31 · 120 阅读 · 0 评论 -
break continue
break continuebreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)package struct;public class Break { public static void main(String[] args) { int i=0; while (i<100){ i++; S原创 2021-01-09 02:00:14 · 444 阅读 · 0 评论 -
For语句循环
For循环虽然所有循环结构都可以用while或者do…while表示,但是Java提供了另一种语句——for循环,使一些循环结构变的更加简单。for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环执行的次数是在执行前就确定的。语法格式如下:for(初始化;布尔表达式;更新){ //代码语句}package struct;public class ForDemo01 { public static void main(String[] ar原创 2021-01-09 01:59:21 · 184 阅读 · 1 评论 -
While循环
While与Do…While循环结构while是最基本的循环,它的结构为:while(布尔表达式){ //循环内容}只要布尔表达式为true,循环就会一直执行下去。我们大多数情况是会让循环停止下来,我们需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器的请求响应监听等。循环条件一直为true的会造成无线循环【死循环】,我们正常的业务编程应该避免死循环。会影响程序性能或者造成程序卡死崩溃!思考计算1+2+3+···+100=?p转载 2021-01-08 01:46:51 · 209 阅读 · 0 评论 -
Switch多选择结构
Switch多选择结构多选择结构还有一个实现方式就是switch case语句。switch case语句判断一个变量与一系列值中某个值是否相等,每一个值称为一个分支。switch(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选 //你可以有任意数量的case语句 default://可选原创 2021-01-07 15:06:42 · 201 阅读 · 0 评论 -
If选择结构
If选择结构if单选择结构我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示语法:if(布尔表达式){ //如果布尔表达式为true将执行的语句}package struct;import java.util.Scanner;public class IfDemo01 { public static void main(String[] args) { Scanner scanner=new Sc原创 2021-01-07 02:17:51 · 123 阅读 · 0 评论 -
顺序结构
顺序结构structJava的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。package struct;public class Demo01 { public static void main(String[] args) { System.out.println("Hel原创 2021-01-07 02:13:47 · 121 阅读 · 0 评论 -
Java Scanner对象
Scanner对象之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入.基本语法:Scanner s=new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。pack原创 2021-01-05 02:02:13 · 122 阅读 · 0 评论 -
Java基本运算符
基本运算符Java语言支持如下运算符:算数运算符:+,-,*,/,%(模运算,取余运算),++,–赋值运算符:=关系运算符:>,<,>=,<=,==(等于),!=(不等于),instanceof逻辑运算符:&&(与),||(或),!(非)位运算符:&,|,^,~,>>,<<,>>>(了解!!!)条件运算符:?:扩展赋值运算符:+=,-=,*=,/=算数运算符++,–public class原创 2021-01-04 13:35:17 · 79 阅读 · 0 评论 -
Java类型转换
类型转化由于Java是强类型语言,所有要进行有些运算的时候的,需要用到类型转换。低------------高byte short char->int->long->float->doublepublic class demo01 { public static void main(String[] args) { int i=128; byte b=(byte)i; //内存溢出 //强行类型转换 (类型)变量名原创 2020-12-29 21:37:07 · 40 阅读 · 0 评论 -
Java数据类型面试拓展题
数据类型拓展题整数拓展进制表示二进制0b 十进制 八进制0 十六进制0Xint i=10;int i2=010;//八进制0int i3=0x10;//十六进制0x 0~9 A~F 16浮点数拓展银行业务怎么表示?钱//float 有限 离散 舍入误差 大约 接近但不等于//double最好完全避免使用浮点数进行比较应用:BigDecimal 数学工具类字符拓展char c1='a';char c2='中';Syst原创 2020-12-28 18:29:36 · 84 阅读 · 0 评论 -
Java数据类型
数据类型强类型语言(c++,java···)//要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用弱类型语言Java的数据类型分为两大类基本类型(primitive type)引用类型 (reference type)"八大基本类型数据类型"//整数型byte 占1个字节范围[-128-127]short 占2个字节范围[-32768-32767]int 占4个字节范围[-2147484648-2147483647] long 占8个字节范围[原创 2020-12-28 18:26:44 · 280 阅读 · 0 评论 -
Java Hello,world!
HelloWorld随便新建一个文件夹,存放代码新建一个java文件文件名后缀为.javaHello.java如果系统可能没有显示文件后缀名,我们需要手动打开编写代码public class Hello{ public static void main(String[] args){ System.out.print("Hello,World!"); }}编译Javac Java文件,会生成一个class文件运行class文件,Java cl原创 2020-12-28 18:23:48 · 54 阅读 · 0 评论 -
Windows如何安装JDK
安装JAVA开发环境安装JDK浏览器搜索JDK8(稳定,常用)找到下载地址同意协议下载电脑对应的版本双击安装JDK记住安装的路径配置环境变量我的电脑—>右键—>属性环境变量—>JAVA_HOME配置pach变量(新建)测试JDK是否安装成功打开cmd输入java -version 出现以上画面则安装成功2020/12/26 by狂神老师...原创 2020-12-26 19:25:41 · 91 阅读 · 1 评论