【Java基础】基础知识
基础
数据类型
值类型
- 数值型
- 整数类型(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中有两种形式可以实现多态- 继承(多个子类对同一方法的重写)
- 接口(实现接口并覆盖接口中同一方法)
- 五大基本原则
- 单一职责原则
- 对拓展开放,对修改封闭
- 里式替换原则
- 依赖倒置原则
- 接口分离原则
类与接口
抽象类和接口的对比
| 参数 | 抽象类 | 接口 |
|---|---|---|
| 声明 | 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 单继承的缺陷。
- 匿名内部类可以很方便的定义回调。
内部类有哪些应用场景
- 一些多算法场合
- 解决一些非面向对象的语句块。
- 适当使用内部类,使得代码更加灵活和富有扩展性。
- 当某个类除了它的外部类,不再被其他的类使用时。
引用
https://github.com/WilsonPan/java-developer
【Java基础】基础知识的更多相关文章
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- Java虚拟机基础知识
写在前面 之前老大让做一些外包面试,我的问题很简单: 介绍一下工作中解决过比较有意思的问题. HashMap使用中需要注意的点. 第一个问题主要是想了解一下对方项目经验的含金量,第二个问题则是测试下是 ...
- java必备基础知识(一)
学习的一点建议: 每一门语言的学习都要从基础知识开始,学习是一个过程,"万丈高楼平地起",没有一个好的地基,想必再豪华的高楼大厦终究有一天会倒塌.因此,我们学习知识也要打牢根基,厚 ...
- Java基础入门知识
Java编程入门知识 知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...
- 什么才是java的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- Java开发知识之Java编程基础
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...
- day01<计算机基础知识&Java语言基础>
计算机基础知识(计算机概述) 计算机基础知识(软件开发和计算机语言概述) 计算机基础知识(人机交互) 计算机基础知识(键盘功能键和快捷键) 计算机基础知识(如何打开DOS控制台) 计算机基础知识(常见 ...
- 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&& ...
- java部分基础知识整理----百度脑图版
近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...
- java学习基础知识入门
基础入门知识(一) 一.java技术的分类 java按照技术标准和应用场景的不同分为三类,分别是JAVASE.JAVAEE.JAVAME JAVASE : 平台标准版,用于开发部署桌面,服务器以及嵌入 ...
随机推荐
- bluz-5.47 蓝牙
为什么android手机的蓝牙比如说 googplay 比较有名的nRf Connect , BLE scanner ,在安卓手机上都不能发现,树莓派开启的服务. 因为,可能是服务走了 GATT 服务 ...
- mysql 创建 100w条数据
简介 RT code CREATE TABLE `app_user` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHA ...
- eslint vscode 配置
简介 以作备份 step1 vscode 安装插件 eslint step2 file->preferences->setting code Actions On Save "e ...
- Django--数据管理系统
目录 Django--数据管理系统 数据库操作: python内对数据库的操作: 运行更新数据库.运行项目: 网页代码继承: 框架内代码: html网页代码: Django--数据管理系统 数据库操作 ...
- API生命周期管理平台,构建统一API管理门户
API生命周期管理平台是企业在实施API战略过程中首选的IT支撑系统,通过RestCloud API生命周期管理平台可以全面管控企业的API资产.在数字化与智慧化的大趋势之下,中国经济正在经历从消费互 ...
- Hive自定义函数(UDF)开发和应用流程.18981521
目录 引言 一.Hive自定义函数的类型 二.准备环境和工具 三.实际案例开发编译 四.前方有坑请注意 五.总结 引言 Hive作为大数据领域的核心计算引擎,凭借其强大的SQL支持和丰富的内 ...
- ICEE-将SiC/GaS功率MOSFET与应用电路集成封装的IC系列
BM2SCQ124T-LBZ@ROHM 内置1700V SiC-MOSFET的准谐振AC/DC转换器 为所有带插座的设备提供很好的电源系统.采用准谐振实现软开关,有助于降低EMI. 内置1700V/4 ...
- MySQL 19 为什么我只查一行的语句,也执行这么慢?
有些情况下,"查一行"也会执行特别慢,今天就看看什么情况会出现这个现象. 如果MySQL本身有很大压力,导致数据库服务器CPU占有率很高或IO利用率很高,这种情况所有语句的执行都可 ...
- 搭建imx6ull环境--tftp加载镜像,nfs挂载根文件系统
1.环境介绍 开发板:野火imx6ullPro邮票孔EMMC 主机:Win11 虚拟机:virtualbox 虚拟机版本:Ubuntu20.04 Windows远程连接虚拟机 由于这个板子比较老,野火 ...
- 【转】-多线程之Callable
Java并发编程:Callable.Future和FutureTask 该博客转载自Matrix海 子的Java并发编程:Callable.Future和FutureTask 在前面的文章中我们 ...