那么,一个对象改变了静态变量的值,那么其他的对象读取的就是被改变的值。...(也可以理解在写匿名内部类的时候,是对接口的实现/对父类的方法重写) 使用场景:一个接口/类的方法的某个实现方式在程序中只会执行一次 优点:对于使用次数少的方法,无需创造新的类,减少代码冗余 缺点:...线程锁的操作是对设置锁的代码块的等待、唤醒等操作。...此时先得到hash值得数先进该hash值的数组下标,后面的数就以链表的形式与前一个数连接,以此类推 二叉排序树 定义:每个节点的左子树的值小于该节点的值,每个节点的右子树的值大于该节点的值 平衡二叉树...这里补充一个知识点:自动装箱、自动拆箱(jdk5后的新功能) 没有自动装/拆箱时,包装类运算: Integer i1 = new Integer(1); Integer i2 = new Integer
刘小爱同时是很多明星的经纪人,所以他的参数为star接口,创建该类对象的时候,需要传入star接口的实现类。 找那个明星合作,创建刘小爱对象时说明就好了,这是面向接口编程的核心思想。...我们使用的是缓冲字符流,但是缓冲流的底层是由字符流来执行的,那么缓冲字符流就是字符流的代理。...静态:代理类是创建了的,比如例子中的刘小爱 动态:代理类是不用创建的 在Java里有一个类叫Proxy,翻译过来就是代理的意思。...这是具体的业务逻辑,根据不同的需求编写不同的代码,其它的代码都是基本不变的。...proxy 代理类LiuXiaoAi我们是没有创建的,所以用的是它的父接口star来接受代理类对象,这是多态。
目录 前言 方法的基本用法 定义语法 注意事项 实参和形参 方法的重载 什么是重载 重载要解决的问题 方法递归 什么是递归 递归执行过程分析 递归练习 总结递归特点 ---- 前言 ---- 本章我们主要讲解...: 方法的基本用法 方法的重载 方法的递归 方法的基本用法 简单来说方法:方法就是一个代码片段,类似于 C 语言中的函数 存在的意义: 能够模块化的组织代码 做到让代码被重复使用,一份代码可以用在多个位置...(Java 中没有“函数声明”的概念) 方法的调用需要开辟栈帧,方法结束栈帧就随即结束 实参和形参 同样的与C语言一样的是:当方法被调用时,会将实参赋值给形参(一份临时拷贝) 示例: public...---- 什么是重载 定义:同一个方法名字相同,提供不同类型的实现,称为重载 规则: 方法名相同 参数列表不同(参数的个数或者参数的类型不同) 返回值不作要求 重载要解决的问题 示例:两个数据求和...->效率 3.调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。->性能
多态 **场景:**创建一个Animal类,有Dog和Cat类继承Animal类,并重写say( )方法,创建一个Woman类,该类有个Animal类型的成员变量和一个pet( )方法调用对应的say(...经发现,womanA.Pet();本质上调用的是运行时类的say()方法而不是引用类型的say() 探究多态的本质 - 动态绑定 Human human = new Man();虽然我们new的对象是一个...Man()但是它调用的却是Animal()的Say()方法 package com.sukai.test01; public class Human { public static void...此时实际上在父类的内部有一个指向Say( )方法的指针,在程序运行期间,你new的是哪个对象,指针就指向哪个对象的Say( )方法,这就是动态绑定,通过这种动态绑定的方式就可以实现多态了 ?...总结 总结动态绑定(多态):动态绑定是指在“执行期间”(而非编译期间)判断所引用的实际对象类型,根据其实际的类型调用其相应的方法
JavaSE总结 java语法规则 字面量和常量 程序中固定不变化的值。定义了就不能再去修改,比如:整数常量1,2,3,小数常量3.14,布尔常量false,true等。....相同的数组类型 有序的组成在一起 规则 /** * 数组:帮我们存放相同类型的东西的。...栈中存放的是堆中的地址 栈中的存取速度要快于存储在堆中的对应包装类的实例对象。...注意点 同一个包中的类名不能相同,不同的包中的类的名字是可以相同的, 当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。...只有方法存在覆盖的概念,字段没有覆盖. 什么时候进行方法的覆盖 当父类的某一个行为不符合子类具体的特征的时候,此时子类需要重新定义父类的方法,并重写方法体. 方法的重载和方法覆盖的区别?
Java通过定义变量的类型来规定变量的内存空间大小,通过阶梯式的定义,既有满足小数值运行的byte类型,也有支持大数值运算的long类型。...(就是多了一个表示的数,计算机就特殊处理了) 4.2 数据变量&类型的定义 变量是内存中的一个存储区域。而数据类型的定义决定了这块存储区域的大小。...整的这么弯弯绕绕!首先,我承认,面向对象的思路相对于面向过程来说,是有一定难度的。因为面向对象所思考的问题和面向过程最大的区别是问题复杂度的程度完全不一致。...现在市场上大部分用的都是面向对象,巨大的市场需求催生了面向对象的火爆,但究其根本只是一种软件开发的思想,软件开发是没有银弹的,若干年后,也一定会有更好更先进的思维解决问题。...final int x =5; x=6;//报错 修饰引用类型的变量,固定栈,不固定堆,也就是引用变量的地址是不可变的,但是引用地址指向的堆中的内容是可变的。
大家好,又见面了,我是你们的朋友全栈君。...跳转到总目录 01、版本一:视频教程笔记 这个版本是我跟着视频教程做的笔记 教程来源:java基础到高级_零基础自学Java–尚硅谷–宋红康 教程视频地址:https://www.bilibili.com...blog.csdn.net/PorkBird/article/details/113727704 十九:Java9&Java10&Java11新特性 这个以后再做笔记 02、版本二:自我总结 此版本在上面版本的基础上做了一些修改...,删除了一些过于简单的内容,补充了一些内容。
Throwable 总接口 Exception 运行时异常(RuntimeException) java.lang.NullPointException 空指针异常,出现原因:调用了未经过初始化的对象...(尤其是原生数据类型)或者是不存在的对象 2)java.lang.ClassNotFoundException 指定的类找不到,出现原因:类的名字和路径加载错误,通过程序通过字符串来加载某个类是时引发的错误...java.lang.NumberFormatException 字符串转为数字异常,出现原因:字符串中包含非数字型 4)java.lang.IndexOutOfBoundsException 数组角标越界异常,出现原因:数组长度限制,常出现在遍历数组的时候...org.apache.ibatis.binding.BindingException:Invalid bound statement(not found) batis中方法名绑定异常,出现原因:Mapper.xml中的id...和Dao层的接口中定义的方法不一致 检查时异常(checkedException) 在日常编译过程中ide会提示报红的错误,可以通过提示自己加try-catch捕获,常见的有IO Exception
前言 Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。...Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 一、下载JDK 下载后点击安装即可。...java -version javac -version 所有操作如下图所示: 三、安装IDEA 下载 IntelliJ IDEA:JetBrains 功能强大、符合人体工程学的...; } } 总结 以上就是本次文章内容,上述步骤一次执行就可以正确配置好JavaSE环境和编写第一个Java程序了,要是觉得小编写得不错了可以点点赞关注一下,不懂可以评论区留言一起讨论
系列文章目录 Day1 JavaSE环境配置 Day2 JavaSE基础语法 Day3 JavaSE数组 Day4 JavaSE...面向对象(上) Day5 JavaSE面向对象(中) Day6 JavaSE面向对象(下) Day7 JavaSE面向对象 Day8... JavaSE异常处理 Day9 JavaSE多线程 Day10 JavaSE集合 Day11 JavaSE泛类 Day12 JavaSEIO...流 Day13 JavaSE反射 文章目录 前言 一、标识符 1.java关键字的使用 2.标识符的使用 二、代码的使用 1.变量的分类 2.定义变量的格式: 3.变量使用的注意点:...总结 本次文章是对JavaSE基础语法的学习,看懂本次文章可以很好的学好标识符、变量、条件语句、分支语句、循环语句等重要语句,如果觉得文章对您有帮助的,可以点点关注和收藏,有疑问的也可以在评论区一起讨论
JavaSE异常 一、异常的概念 在Java中,将程序执行过程中发生的不正常行为称为异常 常见逻辑异常: 算数异常 System.out.println(10 / 0); // 执行结果 Exception...注:finally中的代码一定会执行的,一般在finally中进行一些资源清理的扫尾工作 关于异常的处理方式 异常的种类有很多, 我们要根据不同的业务场景来决定 对于比较严重的问题(例如和算钱相关的场景...), 应该让程序直接崩溃, 防止造成更严重的后果对于不太严重的问题(大多数场景), 可以记录错误日志, 并通过监控报警程序及时通知程序猿 对于可能会恢复的问题(和网络相关的场景), 可以尝试进行重试 在我们当前的代码中采取的是经过简化的第二种方式...我们记录的错误日志是出现异常的方法调用信息, 能很快速的让我们找到出现异常的位置....以后在实际工作中我们会采取更完备的方式来记录异常信息 异常处理流程总结 程序先执行 try 中的代码 如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配
变量就是指用来保存程序中某些特定的值,而且在程序运行期间其值可以发生改变,将其就称之为变量。 本质上变量可以当成是一个盒子,这个盒子可以用来存储一定的值,方便后期快速定位使用这个值。...3.6.1 如何使用变量 例如: 要求计算圆的面积。而公式则为 πr^2 ,假设 r = 5 ,此时 r 就是一个变量。 不同大小的盒子承载的内容是不同的。...声明变量的格式则是:date_type name = value (数据类型 变量名 = 字面值) tips:java中的变量名要遵循驼峰原则--->首字母小写,其后的每个单词首字母均大写。...转移字符对应的英文是escape character , 转义字符串(Escape Sequence)。 字母前面加上捺斜线""来表示常见的那些不能显示的ASCII字符,称为转义字符。...三、数据类型的转换: 1.自动类型转换 2.强制类型转换
内存分析 Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area 栈的特点 栈描述的是方法执行的内存模型。...多态的好处:提高了程序的扩展性 具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作 多态的弊端:不能使用子类的特有功能 多态转型 向上转型 Animal a...类名作为形参和返回值 方法的形参是类名,其实需要的是该类的对象 方法的返回值是类名,其实返回的是该类的对象 抽象类名作为形参和返回值 方法的形参是抽象类名,其实需要的是该抽象类的子类对象 方法的返回值是抽象类名...,其实返回的是该抽象类的子类对象 接口名作为形参和返回值 方法的形参是接口名,其实需要的是该接口的实现类对象 方法的返回值是接口名,其实返回的是该接口的实现类对象 内部类 在类中定义一个类 访问特点 内部类可以直接访问外部类的成员...它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。
汇编语言:通过各种各样的助记符来完成一些常见的操作,比如add 代表的是 加法、load代表加载等等,通过这些指令完成代码编写,然后通过计算器将指令转为对应的机器码,完成当前功能。...整个过程中需要记忆大量的助记符,也不太利于编写以及维护。 高级语言:通过人习惯的自然语言进行编写,比较利于后期的维护和编码。...但是同样的在执行的过程中需要一个逆推的过程,所以效率同比汇编以及机器而言较差。...语言在整个过程中通过不同的维度可以进行不同的分类: 按照看待问题的角度的不同: 面向对象的和面向过程中 按照当前语言对于数据的类型的强度不同:强类型和弱类型语言 1.3 单位换算问题 1b 一位 8b...2.1.3 java的体系结构和分类 JavaSE: java基础版本 包含了一些java的基础性知识。(目前) JavaEE:企业开发版本,以后的Web应用程序都是通过这个方向的lib库进行编写的。
ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII码。...正确的方式就是将123每位上的数字转换为其相应的ASCII码,然后传送。这里'1'、'2'和'3'对应的ASCII码用16进制表示,分别为0x31、0x32和0x33。...UTF是unicode的传送码,即unicode编码后的编码。UTF的编码方法很简单,用算术表达式计算就可以了,看3字节的utf-8数据没有意思。...编程上乱码就是出现错误,在应用程序上显示不出来,通俗的来说就是你的应用识别不了你的代码,你看到的是一堆乱七八糟的编码。相当于用两本不同的字典寻找同一页码位置上显示的符号内容,就会出现错误,变成乱码。...因为windows操作系统上的cmd命令行用的编码是ANSI,所以在上面编译和运行程序的时候要使用相同的字符集。 ?
所以如果我们熟练掌握异常的定义和使用,这对我们学习Java有很大的帮助。 一、异常的定义 程序执行过程中发生的不正常行为称为异常 。...比如我们在前言中提到的数组越界、运行超时、栈溢出这三个常见的报错信息就是异常的一部分。...在Java当中,为了对不同异常或者错误进行很好的分类管理,Java内部维护了一个异常的体系结构: Throwable:派生出Error和Exception两个子类; Error:代表是Java虚拟机无法解决的严重问题...抛出的对象必须是Exception 或者 Exception 的子类对象 3....声明的异常必须是 Exception 或者 Exception 的子类 3.
每个 case 后面跟一个要比较的值和冒号。 case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。...Java的访问权限有4种: public 公开的 protected 受保护的 默认的,没有任何关键字来表示 private 私有的 修饰符 当前类 同包的类 同包的子类 异包 异包的子类 public...互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。...return null; } } 客户端实现: IHair ih = HairFactory.getHairByClassKey("left"); ih.change(); 附:JavaSE...知识点汇总 https://www.cnblogs.com/almm/p/11637457.html
异常的介绍 异常,顾名思义,就是指非正常的,在预期之外的情况。 生活中:比如邮寄一个快递可收件人联系不上,这就是生活中的一个异常。...注意:异常指的是在程序运行中出现的错误,而不是语法问题导致的编译错误。 异常的分类 在Java的面向对象世界中,异常当然也是对象,众多的异常对象就描述了各种不同的异常情况。...这里的错误往往代表JVM在运行过程中出了问题,比如:栈溢出错误、内存不足错误 Exception类即其子类是指程序中可以处理的异常,我们平时最常打交道的就是这种异常。...,而你的上级碰到问题时,也会面临同样的选择:要么他自己解决,要么他将问题抛给更上级。...//要是你没有捕捉异常,你就会被保安打到shi(程序终止) 使用情况 如果遇到了会影响正常逻辑的情况,基本就这三大类处理方式 知道各个方式的特点后,其实就能根据自己的需求,来做响应的处理了。
基本介绍 一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。...类的第五大成员,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。 后面看底层源码,有大量内部类。...类的五大成员:【属性、方法、构造器、代码块、内部类】 [在这里插入图片描述] 2....m1()"); } {//代码块 System.out.println("代码块"); } class Inner {//内部类,在 Outer 类的内部...内部类的分类 定义在外部类局部位置上(比如:方法内/代码块内) 1)局部内部类(有类名) 2)匿名内部类(没有类名) 定义在外部类的成员位置上(比如:方法内/代码块内) 1)成员内部类(没有用 static
前言 在学习Java的过程当中,不难发现Java全是由类与对象构成的,所以在一个类当中定义和使用一个另外一个类是我们学习过程中必须要学会使用的,而这种类,被称之为内部类。...实例内部类 class A{ void a(){ } class B{ void a(){ } } } 一般情况下,不能有static修饰的属性的方法...(使用static final 可以修饰属性,final修饰的常量在编译时已经确定); 实例化实例内部类: 外部类名.内部类名 变量名 = 外部类对象的引用.new 内部类名(); ...public void a1(){} } //在某个main方法中 new B(){ @override public void a1(){} }.a1(); 在匿名内部类当中,使用的变量是不可以被改变过的...结语 关于内部类,以上就是今天的内容,本文仅仅简单介绍了一下。 这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位点赞评论收藏⭐,谢谢!!! 如果有什么疑问或不同的见解,欢迎评论区留言哦。
领取专属 10元无门槛券
手把手带您无忧上云