Java知识点总结(超详细)
Java语言的特点
1.面向对象
面向对象(OOP)就是Java语言的基础,也是Java语言的重要特性。面向对象的概念:生活中的一切事物都可以被称之为对象,生活中随处可见的事物就是一个对象,我们可以将这些事物的状态特征(属性)以及行为特征(方法)提取并出来,并以固定的形式表示。
2.简单好用
Java语言是由C和C++演变而来的,它省略了C语言中所有的难以理解、容易混淆的特性(比如指针),变得更加严谨、简洁、易使用。
3.健壮性
Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。 另外,在Java语言中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的自动收集等),有效地减少了错误,使得Java应用程序更加健壮。
4.安全性
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击,从而可以提高系统的安全性。
5.平台无关性
Java平台无关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。
6.支持多线程
在C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持。多线程机制使应用程序在同一时间并行执行多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(支持网络编程)
Java语言具有强大的、易于使用的网络能力,非常适合开发分布式计算的程序。java中提供了网络应用编程接口(java.net),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存
Java 是编译与解释共存的语言
Java语法基础
标识符: 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。
合法的标识符:
- 由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且首字符不能是数字。
- 不能把java关键字和保留字作为标识符。
- 标识符对大小写敏感。
关键字:Java语言中已经赋予了特定含义的
合法的标识符:
关键字:Java语言中已经赋予了特定含义的 变量:程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。 变量的使用:
Java 中的注释有三种:
数据类型
基本数据类型(8个),也称原始数据类型: 类型转换:
运算符运算符:一种特殊符号,用以表示数据的运算、赋值和比较数与整数 运算符分类:算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符 1.算术运算符 3.比较运算符 5.三元运算符 Java流程控制语句选择结构if语句: if else语句: 循环结构在程序中当要重复性的做某项工作时可以使用循环语句,包括:for循环、while循环、do…while循环。 for循环语句:
do…while循环语句: 流程跳转流程跳转语句:
数组数组是数据的集合,一个容器,用来存储任何类型的数据,包括原始数据类型和引用数据类型,但是一旦指定了数组的类型之后,就只能用来存储指定类型的数据。 数组声明的三种方式:
一维数组:
二维数组:
对象与类对象:客观存在能够相互区分的个体,比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。概括来说就是:万物皆对象。 类:若干具有相同属性和行为的对象的群体或者抽象,类是创建对象的模板,由属性和行为两部分组成 类是对象的概括或者抽象,对象是类的实例化。 类的声明
成员变量的声明: 成员方法的声明:
构造器的声明:
类的使用类变量的声明: 对象属性的赋值: 属性和方法的调用: 成员变量与局部变量:
参数:参数的本质是特殊的局部变量,只能定义在方法的小括号中 重载方法的重载OverLoading: 同一个类中定义了多个方法名相同而参数不同的方法 重载在同一个类中,方法名相同,参数不同(参数的个数、顺序、类型不同) 构造器的重载: 方法的返回值类型:
关键字this关键字:
this的两种使用方法: 一个构造方法中需要调用本类的另一个构造方法,可以通过this()的方式调用,但this()必须要书写在第一行。 static关键字: 静态变量: 使用static修饰的成员变量叫做静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。static成员变量的初始化顺序按照定义的顺序进行初始化。 静态方法: 使用static修饰的成员方法叫做静态方法,静态方法可以不依赖于任何对象进行访问(对于静态方法来说,是没有this的),由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。 调用格式: 静态内部类(static 修饰类的话只能修饰内部类): 静态内部类与非静态内部类之间存在一个最大的区别: 非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类,但是静态内部类却没有。没有这个引用就意味着:1. 它的创建是不需要依赖外围类的创建。2. 它不能使用任何外围类的非 static 成员变量和方法。 静态代码块: static块可以用来优化程序性能:因为它只会在类加载的时候执行一次 super关键字: 使用方式:
final关键字: final 关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:
说明:使用 final 方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的 Java 实现版本中,会将 final 方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的 Java 版本已经不需要使用 final 方法进行这些优化了)。类中所有的 private 方法都隐式地指定为 final。 参考:https://gitee.com/SnailClimb/JavaGuide 访问修饰符 Java的三大特性封装封装指隐藏对象的状态信息(属性),不允许外部对象直接访问对象的内部信息(private实现)。但是可以提供一些可以被外界访问的方法来操作属性。 将类中成员变量private,提供public的get和set方法来控制属性的存取动作,以保证对私有属性操作的安全性: 继承继承extends:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。多个类可以称为子类,单独这个类称为父类或者超类。 基本语法:
继承是使用已存在 Java只支持单继承,不支持多继承。一个类只能有一个父类,不可以有多个父类。Java支持多层继承(继承体系)。Java继承了父类非私有的成员变量和成员方法,但是请注意:子类是无法继承父类的构造方法的。
方法的重写:
方法重写的前提:继承,子类的修饰符大于等于父类,方法名、参数列表、返回值类型必须相同 多态多态:一种事物的多种形态(多态的前提:继承、重写、向上转型) 通过多态可以提高代码的可重用性,降低模块之间的耦合度。 抽象类抽象类的概念: 抽象类的声明: 抽象类的使用: 接口在Java中接口不仅仅是程序开发过程中“约定”,更是更加抽象化的抽象类。 接口的声明语法: 一个类可以实现多个接口,从而解决了Java单继承的缺点。
|
Java知识点总结(超详细)相关推荐
- JAVA 正则表达式 (超详细,转)
转 JAVA 正则表达式 (超详细,转) 2015年03月25日 10:27:57 阅读数:1514 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍 ...
- HTML学习知识点大全-----超详细(各种标签使用讲解及案例)
HTML学习知识点大全-----超详细(各种标签使用讲解及案例) 1:概念 **最基础的网页开发语言 *Hyper Text Markup language:超文本标记语言超文本:运用了超链接的方法, ...
- Java——IO流超详细总结
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 在初学Java时,I ...
- JAVA 正则表达式 (超详细)
新网站上线 欢迎大家 网站交易中心 在这里你可以购买或者出售你的网站. 网站信息发布中心 在这里有各种交易信息的发布.同时提供 一些软件的免费使用(附有源码). 网站博客系统 这里你可以注册自己的博客 ...
- Java虚拟机(JVM)超详细面试题
文章目录 一.Java内存区域 1.1 说一下 JVM 的主要组成部分及其作用? 1.2 说一下 JVM 运行时数据区 1.3 详细的介绍下程序计数器? 1.4 详细介绍下Java虚拟机栈? 1.5 ...
- JAVA 正则表达式 (超详细) .
2019独角兽企业重金招聘Python工程师标准>>> 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util ...
- Java正则表达式(超详细)
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:183993990 我们一起学Java! 在Sun的Java JDK 1.40版本 ...
- Java异常(超详细!)
1.什么是异常,java提供异常处理机制有什么用? 什么是异常:程序执行过程中的不正常情况. 异常的作用:增强程序的 健壮性. eg. public class ExceptionTest01 {pu ...
- java方法区超详细汇总,方法区到底是干什么用的?不懂方法区不能说了解jvm!
目录 一.运行时数据区结构图 二.栈.堆.方法区的交互关系 三.方法区的理解 官方文档 方法区在哪里 方法区的基本理解 HotSpot中方法区的演进 四.设置方法区大小与OOM 设置方法区内存的大小 ...
- 各大公司Java面试题超详细总结
点击上方"java大数据修炼之道",选择"置顶公众号" 技术文章第一时间送达! 每晚9点,我们不见不散 每日英文 take control of your ow ...
最新文章
- MongoDB探索之路(二)——系统设计之CRUD
- js:进一步关闭(范围:下一个)
- 量子相干与量子纠缠_量子分类
- 【网络流24题】No.7 试题库问题 (最大流,二分图多重匹配)
- 交换排序-经典的快速排序算法总结
- python标准库之参数解析库
- 政府门户应该怎样建设?——解读中国政府网站绩效评估标准
- Linux学习笔记---使用BusyBox创建根文件系统(三)
- Practical JAVA(三)关于final
- 编译安装Nginx以及配置运行Drupal 8,实现上传进度功能
- 医院病历html模板,三甲医院电子病历模板参考
- STM32F401标准固件库配置
- STM32存储器 — 2STM32存储器知识的相关应用(IAP、Bit Banding)
- jQuery appendTo() 方法
- 香港武侠电影十大金曲
- Canvas炫酷3D线条动画背景
- 如何缩小gif动图的体积?怎样快速压缩gif动图?
- 华为模拟器配置vlan教程
- android settings$,android settings命令
- 怎样安装Safari浏览器扩展!
热门文章
- 1112: [POI2008]砖块Klo
- 2021-2027全球与中国接入网电信设备市场现状及未来发展趋势
- 晶振在ad的哪个库里_关于晶振的问题库
- STM32之AD7194驱动
- Http历险记(上)
- c语言求s=1 x x*x 2,Winhex软件的使用
- 阿里云丨以AI助力电力产业变革_创造有为时代——访阿里云人工智能科学家闵万里
- atlas老显示进去服务器,ATLAS游戏前期常见问题有哪些?前期常见问题汇总解答
- 求五个长方体的体积表面积
- RabbitMq(具体怎么用,看这一篇即可)