变量分:
局部变量
全局变量
-----------------------------------------------------
变量三大特性【标识符,初始值,作用域】
定义变量:
语法:[访问修饰符] 数据类型 变量名
例如:public int age;
如何为变量赋值和取值?
age=10;
System.out.println(age);
----------------------------------------------------------
常量:在程序运行期间不会改变
关键字:final
语法:[访问修饰符] [static] final 数据类型 常量名
例如:final double PI=3.14;
注意事项:
1:使用final关键字定义常量
2:常量必须有值
3:建议常量名全部大写
-----------------------------------------------------
定义常量时,通常会使用static关键字修饰
public static final int WIDTH=5;
public final static int WIDTH=5;
-----------------------------------------------------
Java数据类型分类:数值类型,非数值类型
还可以分为原始类型对象类型
-----------------------------------------------------
原始类型(基本类型):
byte, short, int, long, float, double, char, boolean
-------------------------------------------------------------------
对象类型(引用类型)
String, 类, 接口, 数组, 泛型, 枚举, 集合
---------------------------------------------------
数值类型
整数:
byte:(-128---127)32b
short:(-32768----32767)
int:-2的31次方---2的31次方-1[32]
long:-2的63次方---2的63次方-1[64]
非整数:
float:-2的31次方---2的31次方-1[32]
float:标识符为f,例如:8.5f
最多保留6位小数,从第7开始四舍五入
------------------------------------------------
double:-2的63次方---2的63次方-1[64]
标识符为:d,小数默认类型为double
最多保留16位小数,从第17开始四舍五入
非数值类型
char
String
boolean
类,接口.......
---------------------------------
package:包

========================================================================》》

数据类型转换
---------------------------------------
自动类型提升:(小到大)
1:bytebyte类型构成表达式时,自动类型提升到int
2:在一个表达式里面,如果出现了int,float,double
或者其他数值类型,自动提升到该表达式最高类型
byte+byte>int
int+int>int
float+float>float
double-double>double
int+float>float
int+double>double
int+float+double>double
int+long+double>double
--------------------------------
强制类型转换(大到小)
int>byte
float>int
double>float>int.....
long>int>short
强制类型转换可能导致丢失数据
语法:
(目标类型)原类型
前提:数值类型
--------------------------------
int->Integer
char->Charactor
float->Float
double->Double
short->Short
long->Long
boolean->Boolean
byte->Byte
---------------------------------
Java运算符
赋值运算符:从右向左
=,+=,-=,/=,%=
算术运算符
+,-,*,/,%,++,--
逻辑运算符
&&-->A and B->A,B同时为真则为真,如果A已经false,B不执行
||-->A or B->A,B一边为真则为真,如果A已经true,B不执行
!-->not A->如果A是真,则转成假

========================================================================》》

1:数组的概念
在内存中连续存储多个相同类型的线性数据结构
特点:
A:连续存储
B:存储的数据类型相同
C:通过下标访问每一个数组元素,从0开始
----------------------------------------------------
2:为什么要使用数组?
基本的变量只能存储单个数据,如果要存储
多个数据,需要定义多个变量,不便于操作
与管理
-----------------------------------------------------
3:如何定义一维数组?
基本方式:
数据类型[] 数组名;
数组名=new 数据类型[长度];
其他方式
A:数据类型[] 数组名=new 数据类型[长度];
B:数据类型[] 数组名={值1,值1,值1....};
C:数据类型[] 数组名=new 数据类型[]{值1,值2,.....};
其中B,C都是在声明数组的同时进行了初始化操作
------------------------------------------------------------
如何使用数组?
赋值:数组名[下标]=值;
取值:数组名[下标]
注意:数组下标从0开始,最大下标为数组length-1
例如:int[] ages={3,4,5,6,7};
ages[0]-->3;//0最小下标
ages[4]-->7;//4最大下标
获取数据最大下标可以使用属性length-1
System.out.println("ages数组最大下标:"+(ages.length-1));

========================================================================》》

1:对象的概念
现实中具有特定属性行为的所有实体
都是对象
一切皆对象
要研究一个对象,从对象拥有的属性方法开始
实体---->对象
特征---->属性
行为---->方法
------------------------------------------
2.类的概念
具有相同属性共同行为的一组对象的集合
-----------------------------------------
类是从一系列对象中抽取共同点而产生的
一种逻辑上的概念
-----------------------------------------
类和对象之间的关系
1:类是对象的模板,集合【定义了所有对象的共同特征和行为】
2:对象是类的一个具体实现
--------------------------------------
如何创建对象?
类 对象名=new 类();
---------------------------------
Object类--->所有类的根类
toString();
---------------------------------
注意:
1:类的成员属性和方法必须由对象来使用
2:类的成员属性可以被类的成员方法直接调用
---------------------------------
类里面所有非static修饰的属性和方法
都是成员属性和成员方法
----------------------------------
同一个类中,静态属性和静态方法在任何
地方可以直接使用,不需要构建对象

========================================================================》》

1:封装的概念
将事物包装起来,隐藏事物的实现细节即为封装
2:为何需要封装?
A:封装将事物统一收集,便于事物的管理
B:封装将事物细节进行隐藏,限制了事物的访问
3:有哪些地方体现了封装?
电脑主机箱,教室,包,类
-------------------------------------------------------
在Java中,针对每一种基本数据类型,都提供了
一个封装类来进行对这些基本类型的管理和操作
int-->装箱-->Integer-->拆箱-->int
char-->装箱-->Charactor
float-->Float
double-->Double
byte-->Byte
boolean-->Boolean
short-->Short
long-->Long
-----------------------------------
定义类的属性时,如果直接暴露所有属性是不合理
也不安全的,为此,我们需要对属性进行封装
隐藏具体细节,即保证了合理性,也利于程序安全
--------------------------------------
如何将属性封装起来?
将类中属性私有化,提供公有的方法访问这些私有的属性
[特点:不能直接访问属性]
私有化:只能自己独自享用
公共方法:谁都可以用
-----
Java中提供了一组访问修饰符来限制事物的访问
public 公共的 能被所有地方访问
private 私有的 只能被同一个类访问
protected 受保护的 同一个包可以访问,不同包的子类可以访问
[default] 默认的 同一个包可以访问
--------------------------
Java三层范围
A:同一个类
B:同一个包
C:不同包

========================================================================》》

一:什么样的方法是构造方法?
1:方法名类名相同
2:没有返回类型[void也是一种返回类型]

二:构造方法有什么作用?
初始化类的成员变量
【当实例化一个对象时,为这个对象的属性赋于初始值】

三:如何调用构造方法?
使用关键字new
new Student();代表调用不带参数名称为Student的构造方法
new Student("abc",23);代表调用带两个参数名称为Student的构造方法
在一个类中,可以出现多个名称相同,但是参数不同
的构造方法。

四:this关键字
this代表当前对象的一个引用
this关键字不能在静态(static)方法里面使用
---------------------------------------------------
在Java中,同一个类不允许出现相同的方法
什么样的方法是相同方法?
1:方法名相同,2:参数相同[参数的个数,类型,顺序]

========================================================================》》
一:什么叫方法的重载?
一个类中出现多个方法名相同参数不同的方法———
我们称之为方法重载普通方法和构造方法都可以重载

二:方法的重载有什么好处呢?
1.提高程序的灵活度
2.有利于后期项目的维护与管理
3.符合软件设计中的开闭原则

三:什么样的几个方法我们称之为方法的重载?
1.同一个类
2.方法名相同
3.参数不同(个数,类型,顺序)

========================================================================》》

1:继承的概念
父类的特征属性传递给子类,我们称之为子类
继承父类。
2:什么样的关系才能满足继承?
A:两个类之间满足is a的关系
B:两个类之间存在层次关系
3:使用继承有什么好处?
write once,only once:写一次,只写一次
提高了代码的复用性
4:Java中使用什么关键字实现两个类之间的继承?
extends
-------------------------------------------------
* 1:父类 对象名=new 父类();自己能调用自己的方法和属性
* 2:子类 对象名=new 子类();可以调用自己特有方法和属性,也能调用继承到的方法和属性, 如果子类和父类出现相同方法,采用就近原则调用子类里面的方法

* 3:父类 对象名=new 子类();
* 调用属性和方法时,先看父类有没有,如果没有,直接出错
* 如果父类有,则看子类有没有对这个方法进行改变,如果
* 有,则使用子类的,如果没有,则使用父类的
--------------------------------------------------
方法的重载:overload(多个并存)
方法的重写:override(覆盖)
---------------------------------
什么叫方法的重写?
【在子类中,子类对父类中继承到的方法的改变称之为方法的重写】
方法重写的标准
1:父类与子类之间
2.重写的方法要求(方法名、参数、返回值类型)和被重写方法一致
3.重写的方法要求访问修饰符要(大于或等于)被重写的方法
例如:父类中有一个sayHello方法
void sayHello(String){
}
子类重写父类中sayHello方法应该有如下形式
A:
void sayHello(String){
}
B:
public void sayHello(String){
}

--------------------------------------------------

this:当前对象的引用
super:当前对象的父类对象引用
当在子类中需要调用父类的方法和属性时,可以用
super关键字调用
----------------------------------------------------

两个类一旦建立继承关系,当实例化子类时
默认先调用父类中一个不带参数的构造方法
实例化一个父类对象,然后再实例化子类对象
------------------------------
super()方法用来调用父类的构造方法
例如:super()调用父类不带参数的构造方法
super("abc")调用父类带一个字符串类型参数的方法
super("bac",23)调用父类带两个参数的构造方法
super()必须是在子类构造方法(第一行)调用

java 基础--理论知识的更多相关文章

  1. Java基础语法知识你真的都会吗?

    第一阶段 JAVA基础知识 第二章 Java基础语法知识 在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的"潜规则",通过你对命名 ...

  2. Java基础入门知识

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

  3. Java 基础部分知识复习

    面向对象的特征: 继承.封装和多态 封装 : 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象去操作.对不可信的信息进行隐藏. 继承: 它可以使用现有类的功能,并在无需重新编 ...

  4. Java基础小知识(一)

     序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...

  5. java基础小知识

    1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...

  6. java基础语法知识

    1.用消息框显示加法计算结果 package plusdialog; import javax.swing.JOptionPane;  // import class JOptionPane publ ...

  7. Java基础小知识1——分别使用字节流和字符流复制文件

    在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...

  8. Java基础小知识笔记

    1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...

  9. Java基础重点知识之欣欣向然

    题目: 第一题:二重循环: public class Text01 { //完成歌曲排序的效果 public static void main(String[] args) { String[] zi ...

随机推荐

  1. 【Linux】【Jenkins】配置过程中,立即构建时,maven找不到的问题解决方案

    在Linux环境下配置Jenkins执行时,发现不能执行Maven,这个比较搞了. A Maven installation needs to be available for this projec ...

  2. linux下自定义dubbo的shell脚本

  3. Mac 日常使用tips

    20180725: windows标准的键盘连接了mac如何映射键盘?最大的好处是可以向后删除,还可以一键PageUP, PageDown ref: https://support.apple.com ...

  4. Java执行shell遇到的各种问题

    1.判断子进程是否执行结束 有的时候我们用java调用shell之后,之后的操作要在Process子进程正常执行结束的情况下才可以继续,所以我们需要判断Process进程什么时候终止. Process ...

  5. Rocket MQ 1 - 用

    参考 http://www.iocoder.cn/categories/RocketMQ/ ; https://www.jianshu.com/nb/16219849 首先上启动方法,分别启动name ...

  6. 牛客网-乌龟跑步-(四维dfs)

    链接:https://ac.nowcoder.com/acm/problem/15294来源:牛客网 题目描述 有一只乌龟,初始在0的位置向右跑. 这只乌龟会依次接到一串指令,指令T表示向后转,指令F ...

  7. prometheus 表达式

    avg_over_time(my_inprogress_requests{job="mhc"}[5m] offset 3m) 返回time=1550664637开始向前偏移3分钟之 ...

  8. Jenkins安装时Web页面报错提示离线安装

    先跳过所有. 方法1 先看它的提示:”参考离线Jenkins安装文档“发现链接点不开,我还以为是被墙了呢,FQ以后还是打不开.看来这个参考文档是没有用滴.点击配置HTTP代理跳出如下界面:安装Jenk ...

  9. C++中如何对输出几位小数进行控制(setprecision)

  10. Sentinel统计线程,QPS,RT的方式

    一.Sentinel是阿里开源产品,用于流量监控和管理. 二.对于流量控制,可以通过限制线程数和QPS实现限流 1. 资源进入Sentinel的方式 Entry entry = null; try { ...