java基础第四篇之面向对象】的更多相关文章

7.封装与面向对象 a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递的数组也是不确定的 返回值类型:将运算后的结果类型作为返回值类型//圆的周长,圆的面积,返回数组某个元素 public static int getArea(int width,int length){ return width * length } public static…
1:关于继承为了保证父类的良好封装性,不会被子类随意改变,设计父类时通常隐藏父类的内部数据,把父类属性改为private如果父类中可以被重写,但不希望被其他类自由访问可用protected修饰;2:什么时候派生子类?简而言之就是 如果子类需要额外增加新的属性:或者有新的行为方式那么可以派生新类,注意如果是只通过在父类中增加一个新的属性值就可以解决的问题就不要派生了:3:使用组合派生新的类 示例如下:本例不太合适只作为示例 示例代码 一般而言,继承是对已有的类进行补充改造获取一个特殊的版本:组合则…
java基础2-容器篇 1.页首请关注 思维导航大纲 1.常用容器的类型层次结构 2.理解容器的常用思维大纲 a.空间 时间 concurrentModifyException 加载因子 3.常用类源码 List HashMap ConccurentHashMap 4.容器在框架中的使用 Mybatis LRU- LinkedList  FIFO LinkedHashMap 5.容器工具 Collections Arrays Guava Cache…
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize的区别. 4.Errror , Exception,RuntimeException区别 5.Java语言如何进行异常处理,关键字:throws.throw.try.catch.finally分别如何使用. 6.throw和throws有什么区别? 7.请说一下你常用的几种异常? 8.线程的基本概念…
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一章-初识java JAVA基础第二章-java三大特性:封装.继承.多态 JAVA基础第三章-类与对象.抽象类.接口 说起集合框架,很多面试官在面试初级javaer的时候也是很喜欢问的一个知识点 我们先上一张图看看 从上面的关系图中,我们可以看到从上往下分呢~最上面的是接口,中间是抽象类,最下面就是…
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既然是流动也就会有方向,有入方向和出方向.举个上传文件的栗子,现在有三个对象,文件.应用程序.上传的目标地址(服务器).简化的上传文件有两步: 应用程序读文件…
线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public class Thread implements Runnable { /* What will be run. */ private Runnable target; ...... /** * Causes this thread to begin execution; the Java Virtu…
1.线程安全 多个线程对同一个共享变量进行读写操作时可能产生不可预见的结果,这就是线程安全问题. 线程安全的核心点就是共享变量,只有在共享变量的情况下才会有线程安全问题.这里说的共享变量,是指多个线程都能访问的变量,一般包括成员变量和静态变量,方法内定义的局部变量不属于共享变量的范围. 线程安全问题示例: import lombok.extern.slf4j.Slf4j; /** * @Author FengJian * @Date 2021/1/27 10:59 * @Version 1.0…
一.抽象类 1.介绍 使用关键字 abstract 定义抽象类. abstract定义抽象方法,只有声明,不用实现. 包含抽象方法的类必须定义为抽象类. 抽象类中可以有普通方法,也可以有抽象方法. 抽象类不能被实例化,但可以定义引用变量. 抽象关键字 abstract 和哪些不可以共存?final,private,static. 2.应用场景 在某些情况下,某个父类只知道其子类应该包含怎样的方法,但不知道这些子类如何实现这些方法. 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的…
1.循环结构概述和for语句的格式及其使用 * 什么是循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环. 循环语句的组成 初始化语句: 一条或者多条语句,这些语句完成一些初始化操作. 判断条件语句: 这是一个boolean 表达式,这个表达式能决定是否执行循环体. 循环体语句: 这个部分是循环体语句,也就是我们要多次做的事…
类和对象 面向对象的概念 面向过程 核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式: 面向对象 核心就是对象二字,对象就是特征与技能的结合体,利用“类”和“对象”来创建各种模型来实现对真实世界的描述. 面向对象的三大特征 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism) 面向对象的思想概述 面向对象的编程思想力图使计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能的一致. 类(class)和对象(obj…
面向对象 Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计.开发计算机程序. 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为.面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征.行为特征抽象出来,描述成计算机事件的设计思想. 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现. 面向对象的语言中,包含了三大基本特征,即封装.继承和多态. 举例:…
1.多态介绍 面向对象三大特征:封装.继承.多态.多态是Java面向对象最核心,最难以理解的内容.从一定角度来看,封装和继承几乎都是为多态而准备的. 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编译时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定.因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致…
a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递的数组也是不确定的 返回值类型:将运算后的结果类型作为返回值类型//圆的周长,圆的面积,返回数组某个元素 public static int getArea(int width,int length){ return width * length } public static String get…
Java集合类 集合类概述 Java 语言的java.util包中提供了一些集合类,这些集合类又被称为容器.常用的集合有List集合.Set集合.Map集合,其中List与Set实现了Collection接口.接口还提供了不同的实现类. List 接口的实现类常用的有ArrayList 与LinkedList. 1.      ArrayList类 该类实现了可变的数组,允许所有元素包括null.可以根据索引位置对集合进行快速的随机访问.缺点是向指定的索引位置插入对象或删除对象的速度较慢,语法格…
框架基础反射:反射是Java开发的一类动态相关机制.因为本身Java语言并不是一款动态语言,如果我们想要得到程序动态的效果,因此便引入了反射机制这一概念. 问题:Java中创建实例化对象有哪些方式? ①使用new语句创建一个对象. ②通过工厂方法返回对象,例:String s =String.valueOf().(工厂方法涉及到框架) ③动用反射机制创建实例化对象,Class类的三种方法或者通过类类型的newInstance()实例方法. ④调用对象的clone()方法.(俗称克隆方法) ⑤通过…
一.面向对象的三个基本特征: 1.封装,将对象的实现细节隐藏起来,并通过公共接口暴露相关功能: 2.继承,代码复用的表现,当子类继承父类后,子类作为一种特殊的父类,直接获得父类的属性和方法: 3.多态,子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,意味着同一个类型的对象在运行时可能表现出不同的行为特征 (PS:java不支持多重继承) 二.面向对象编程的一般过程大致为:OOA面向对象分析.OOD面向对象设计和OOP面向对象编程三个阶段.面向对象分析设计一般需用到UML工具.UM…
 Java的HashMap非常的常用,本篇研究它的实现算法,最后希望计算出内存占用,性能的量化数据,然后得出什么时候使用HashMap,什么时候不能滥用的结论. HashMap实际上是一个数组,数组里面的每个元素都是一个链表.每个元素在通过put方法放入HashMap中的时候,要按照如下步骤进行: 1.根据该元素自身提供的hashcode计算出散列值,该散列值就是数组的下标. 2.将新元素放入该数组位置的链表中. 先来看一下数组的定义: /**          * The table, res…
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(String[] args) { 4 List list = new ArrayList(); 5 list.add("qqyumidi"); 6 list.add("corn"); 7 list.add(100); 8 9 for (int i = 0; i < lis…
一.java中的基本数据类型 二.double和float精度不准的问题 double和float本身确实存在某种缺陷,不能用于精确计算. 解决办法: 用java.math.BigDecimal,通过BigDecimal类可以解决上述问题 ArithUtil是自定义的一个工具类,封装了加减乘除操作. package ex; import java.math.*; public class BigDecimalDemo { public static void main(String[] args…
1.Integer与int的区别 int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer.在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以…
集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素唯一).Map(维护多个key-value键值对,保证key唯一). 集合框架体系如下图所示: 图1 各个集合类型的区别与联系如下图: 接口 简述 实现 操作特性 成员要求 Set 成员不能重复 HashSet 外部无序地遍历成员 成员可为任意Object子类的对象,…
Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个HelloWorld.java程序.这个程序在屏幕上打印出一串字符"Hello World!": public class HelloWorld { public static void main(String[] args) { System.out.println("Hello…
1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) 2.标识符 2.1.给类,接口,方法,变量起名字的字符 2.2.组成规则(A:英文大小写,B:数据,C:$ _) 2.3.注意事项(不能为数字开头,不能是java中的关健字,区分大小写) 2.4.常见的命名规则(见名知意) A:包   全部是小写 单级包:小写 如:peng,com 多级包:小写…
一.数组 1.一维数组 (1).数组的定义 数据类型 数组名[]=new 数据类型[大小] public class Demo1 { public static void main(String[] args) { //第一种定义方式 int arr[]; arr=new int[5]; //第二种定义方式 int arr2[]=new int[5]; //第三种定义方式 int[] arr3; arr3=new int[5]; //第四种定义方式 int arr4[]={1,2,3,4}; }…
在系列第一篇中,使用的是mybatis得到了一个小小的项目,而该项目的用户对象是有邮件地址的,如果按照邮件地址给对方去一封邮件会不会更能体现针对性呢,所以,我在这篇准备加入发送邮件的功能,利用的就是spring 自带的JavaMail. 1, 更新pom.xml. 添加velocity,javax.mail1.5能及spring-context-support. <dependency> <groupId>velocity</groupId> <artifactI…
写在前面:本文章基本覆盖了java IO的所有内容.java新IO没有涉及.文章依然以样例为主,由于解说内容的java书非常多了,我觉的学以致用才是真.代码是写出来的,不是看出来的. 最后欢迎大家提出意见和建议. [案例1]创建一个新文件 1 2 3 4 5 6 7 8 9 10 11 import java.io.*; class hello{     public static void main(String[] args) {         File f=new File("D:\\h…
31.String s = new String("xyz");创建了几个StringObject?是否可以继承String类? 两个或一个都有可能,"xyz"对应一个对象,这个对象放在字符串常量缓冲区,常量"xyz"不管出现多少遍,都是缓冲区中的那一个.NewString每写一遍,就创建一个新的对象,它使用常量"xyz"对象的内容来创建出一个新String对象.如果以前就用过'xyz',那么这里就不会创建"xyz&…
1.字节流 1.1.字节输出流output 1.1.1.数据写入文件中 通过api查找output.找到很多,其中java.io.OutputStream,OutputStream: 输出字节流的超类. 基本特点: 1.操作的数据都是字节. 2.定义了输出字节流的基本共性功能. 3.输出流中定义都是写write方法.操作字节数组write(byte[]),操作单个字节write(byte). 子类有规律:所有的子类名称后缀是父类名,前缀名是这个流对象功能. 想要操作文件: FileOutputS…
在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意的事项.匿名内部类使用的形参为何要为final. 使用匿名内部类内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪.创建格式如下: new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 } 在这里我们看到使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口.同时它也是没有class关键字,这是因为匿名内部类是直接使用new来生成一个对象的引用.当然这个引用是隐式的.…