基础

数据类型

值类型

  • 数值型

    • 整数类型(byte,short,int,long)
    • 浮点类型(float,double)
  • 字符型(char)
  • 布尔型(boolean)

引用类型

  • 类(class)
  • 接口(interface)
  • 数组([])

访问修饰符

  • private: 在同一类内可见。使用对象:变量、方法
  • default(即什么都不写): 在同一包内可见
  • protected: 对同一包内的类和所有子类可见
  • public: 对所有类可见

关键字

  • goto

goto 是 Java 中的保留字,在目前版本的 Java 中没有使用。

  • final

用于修饰类、属性和方法

  • 被final修饰的类不可以被继承
  • 被final修饰的方法不可以被重写
  • 被final修饰的变量不可以被改变
  • 被final修饰不可变的是变量的引用, 不可变是引用,不是内容
  • this

this是自身的一个对象

  • super

指向父类指针


面向对象

  • 三大特性

    • 封装

    隐藏对象的属性和实现细节,仅对外提供公共访问方式

    • 继承

    继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以 增加新的数据或新的功

    能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承可以提高代码复用性。

    • 多态

    父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提 高了程序的拓展性

    在Java中有两种形式可以实现多态

    • 继承(多个子类对同一方法的重写)
    • 接口(实现接口并覆盖接口中同一方法)
  • 五大基本原则

    1. 单一职责原则
    2. 对拓展开放,对修改封闭
    3. 里式替换原则
    4. 依赖倒置原则
    5. 接口分离原则

类与接口

抽象类和接口的对比

参数 抽象类 接口
声明 abstract interface
实现 子类使用extends继承 子类使用implements关键字来实现
构造器 可以有构造器 不能有构造器
修饰符 任意访问修饰符 public
多继承 一个类最多只能继承一个抽象类 一个类可以实现多个接口
字段声明 任意 static 和 final

内部类

  • 静态内部类
public class Outer {
private string name;
private static int radius = 1; public static class StaticInner {
public int getRedius() {
return radius;
}
}
}

静态内部类可以访问外部类所有的静态变量,而不可访问外部类的非静态变量

  • 成员内部类
public class Outer {
private string name;
private static int radius = 1; public class StaticInner {
public int getRedius() {
return radius;
}
}
}

成员内部类可以访问外部类所有的变量和方法,包括静态和非静态,私有和公有

  • 局部内部类
public class Outer {
private string name;
private static int radius = 1; public void execute() {
public class Inner { }
Inner inner = new Inner();
}
}

定义在实例方法中的局部类可以访问外部类的所有变量和方法,定义在静态方法 中的局部类只能访问外

部类的静态变量和方法

  • 匿名内部类
public class Outer {
private string name;
private static int radius = 1; public void execute() {
new Service() {
public void method() { }
}.method();
}
}

匿名内部类就是没有名字的内部类。

内部类的优点

  • 一个内部类对象可以访问创建它的外部类对象的内容,包括私有数据!
  • 内部类不为同一包的其他类所见,具有很好的封装性;
  • 内部类有效实现了“多重继承”,优化 java 单继承的缺陷。
  • 匿名内部类可以很方便的定义回调。

内部类有哪些应用场景

  1. 一些多算法场合
  2. 解决一些非面向对象的语句块。
  3. 适当使用内部类,使得代码更加灵活和富有扩展性。
  4. 当某个类除了它的外部类,不再被其他的类使用时。

引用

https://github.com/WilsonPan/java-developer

【Java基础】基础知识的更多相关文章

  1. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

  2. Java虚拟机基础知识

    写在前面 之前老大让做一些外包面试,我的问题很简单: 介绍一下工作中解决过比较有意思的问题. HashMap使用中需要注意的点. 第一个问题主要是想了解一下对方项目经验的含金量,第二个问题则是测试下是 ...

  3. java必备基础知识(一)

    学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...

  4. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  5. 什么才是java的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

  6. Java开发知识之Java编程基础

    Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...

  7. day01<计算机基础知识&Java语言基础>

    计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...

  8. java正则表达式基础知识(转)

    1基础 2.1 简单字符类 构造 描述 [abc] a,b或c [^abc] 除a,b或c外的字符 [a-zA-Z] a至z 或 A至Z [a-d[m-p]] a至d 或 m至p [a-z&& ...

  9. java部分基础知识整理----百度脑图版

    近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...

  10. java学习基础知识入门

    基础入门知识(一) 一.java技术的分类 java按照技术标准和应用场景的不同分为三类,分别是JAVASE.JAVAEE.JAVAME JAVASE : 平台标准版,用于开发部署桌面,服务器以及嵌入 ...

随机推荐

  1. 前端开发系列006-基础篇之JavaScript数组基础

    本文将介绍JavaScript语言中的数组,全文内容包括但不限于数组的简单介绍.数组的创建.数组中元素的访问.数组的类型以及数组相关的核心方法等内容,需要指出的是ES6 + 的数组相关特性并没有被纳入 ...

  2. SciTech-EECS-PCB电路板设计-深思熟虑方可行动 :使用KiCad进行PCB设计的基本流程

    聚焦人生的社交网.时间.精力.资源:人生方有成. 明确需求与产品设计: 大体的ideal开始,到深思熟虑,联系各方都通过,制定完好的计划方可行动. 是否已有成熟商品:直接采购即可? 目标用户群: 市场 ...

  3. 一文带你全面解析postman工具的使用(基础篇) ---九五小庞

    postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 .无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 .那么 ...

  4. win11正式版系统解决电脑卡顿的问题

    有雨林木风官网的小伙伴,刚升级安装完原版win11系统,却发现一点都不好用,而非常卡顿,不流畅.原因可能是配置或运行内存占用过多也可能是因为原版系统没有优化过的问题.针对这个问题,雨林木风小编将与大家 ...

  5. Win10专业版系统如何更改盘符的问题

    很多深度系统的win10专业版用户,喜欢追求自己的个性化,想要把盘符修改成自己想要的名字,这样显的非常的有个性.那么,win10系统该如何修改盘符呢?别担心,深度技术小编就来分享详细的设置方法,有喜欢 ...

  6. Open-Source License Policy

    Copyleft:要求修改后的代码必须以相同的许可证发布.Public:允许修改和分发,但可能需要提供原始代码的链接.Permissive:允许自由使用.修改和分发,通常不需要提供原始代码.Requi ...

  7. CloudQuery 的数据安全技术运用

    数据安全到底有多重要? 在大数据时代,数据已经成为一个企业最核心的业务资产.近年来频发的数据安全事件,从"facebook用户信息泄露"到"微盟删库事件",每一 ...

  8. 免费的个人网站托管-Cloudflare

    前情 对于前端开发来说,拥有一个自己的个人网站是一种执着也是一种排面,但是大部分前端也都对服务端这一块的东西都停留在了解阶段,但是如果正儿八经的上线一个网站或多或少需要懂一些服务端知识,需要购买服务器 ...

  9. Android端实现多人视频语音聊天|音视频开发

    1 多人视频通话功能 本文展示了如何使用 即构实时音视频SDK ZEGO Express SDK 构造多人视频通话场景,即实现多对多实时音视频互动.用户可在房间内与其余用户进行实时视频通话,互相推拉流 ...

  10. 从.NET到Go:我和AI搓了一个高性能对象映射库Go版Mapster

    从.NET到Go:我用AI一起搓了一个高性能对象映射库 背景 作为一名从.NET开发转向Go的开发者,我深深体会到了语言迁移带来的"阵痛",缺乏称手的"兵器"呀 ...