注:Java采用Unicode符号集,每个字符占2个字节,无论英文还是中文还是其他字符。

标识符

为变量、类或方法起的名称

以字母,下划线、或者$符号开头

由字母、数字、下划线或者$符号开头

区分大小写,没有长度限制,不能使用关键字

尽量取得容易辨识,见名知意

如:identifier、userName、user_Name、_sys_varl、$change

基本数据类型

Java定义了8中基本数据类型

布尔值----boolean(只有true和false两种类型)

字符-------char ( 16 位的Unicode字符 用单引号( '' )标注;'a'表示字母a     '\t' 表示制表符     '\u????'中?用确切的代替   申明并且初始化: char c = 'A'    申明变量  char ch1,ch2)

整数--------byte (8位) short(16)  int(32)  long(64)【以0开头表示八进制 ;以0x开始表示16进制】

浮点型-----float   double

变量

必须在类的内部【可以在方法外也可以在方法类】

在方法类定义的变量叫做局部变量,需要显示的初始化

成员变量和类变量【对象】自动初始化【数字初始化为0,对象初始化为null】

常量

在程序运行中,其值保持不变的量

不同数据类型间的相互转换【封装Wrapper类】

Java中类的定义:

Class {

;

;

;

}

成员变量申明:

;

修饰符:

final:修饰常量,常量的值不能被修改【例如 final int CONSTANT = 50;】

static:申明静态变量[类变量] static int nCount;

方法的申明:

[参数列表]{

语句;

}

方法参数的传递方式:

1、值传递:形参是基本数据类型,方法调用时,实际参数把值传递给形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容;是两个不同的存储单元,所以方法执行中,形式参数值的改变不会影响实际参数的值。

2、引用传递:形参类型是引用数据类型【传递地址】,方法调用时,实际参数是对象或者数组,这时,形式参数和实际参数指向的是同一地址,方法执行中,对形式参数的操作实际上是对实际参数的操作,这个结果在方法结束后被保留了下来,所以对形式参数的操作实际上就是对实际参数的操作。

构造器申明:

[参数列表]{

语句;

}

注释:构造器没有返回值,void也不行;如果有返回值,方法会被当做普通函数执行;

构造器函数特点:

作用:完成对类对象的初始化

名称必须和类名相同

不能有返回值,不能有 return 语句

一般申明为Public类型

构造器的使用:

1、不能现实的调用

2、在创建一个类的对象时,系统自动调用构造器为该对象初始化

3、构造器只能和new关键字一起使用

格式:

类名  对象名   =  new 构造函数名称(成员变量的初始值) ;

默认构造器:

1、每个类至少有一个构造器

2、如果不编写构造函数,系统自动添加默认的构造函数【默认构造函数不带参数,默认构造函数函数体为空】

3、不必编写构造函数就能使用new XXX()  创建实例

对象创建格式:

= new (实参)

对象的清除:

对象为null时,Java自动调用垃圾回收机制清除对象,释放对象占用的内存空间

手动编写finalize() 方法撤销对象   -- 不提倡

对象的内存模型:

栈内存:方法中定义的变量(基本类型和引用类型)。超过变量的作用域,自动释放变量的内存

堆内存:new 创建的对象(包括数组),由系统自动回收

类的继承【仅支持单继承】

class  extends {

申明;

}

子类可以继承父类中非private的方法和属性;子类可以添加新的属性和方法;【程序代码重,减少冗余】

方法的重载(overload):

1、一个类中有多个同名的方法

2、条件:参数的个数不同;参数的类型不同

3、如果两个方法只有返回值不一样,不是重载,会报错

方法的覆盖(override):

1、子类可以修改父类继承过来的行为

2、子类可以创建和父类的方法不同功能的方法,但是下面必须相同:【方法名、返回值、参数列表】

super关键字:

往往在覆盖方法时,真正不目的不是代替现有的行为,而是在某些方面扩展那些行为;

类中使用super关键字指向父类的成员 包括数据和方法;

3中使用方法:

super.方法名([参数表]);  ---- 调用父类的方法

super.成员变量名;       ---- 访问父类的成员变量

super([参数表]);        ----  调用父类的构造函数

构造函数不能被继承:

子类从父类继承所有的方法和变量

子类不能继承父类的构造函数

有两种方式可以获取构造函数:1、使用默认的构造函数 2、编写1个或者多个构造函数

调用父类的构造函数:

要调用父类的构造函数,必须在子类构造函数的第一行使用super关键字

要调用特定的父类的构造函数,必须为super提供参数

如果没有this或者super调用,编译器会插入一个对父类无参数构造函数的隐式调用:

super();

变量的多态:

类型为X的参考变量,指向的对象类型既可以是X,也可以是X的子类;

如: Employee x = new Manager();    Employee y = new Employee();

实例方法能够被覆盖,静态(static) 方法不能被覆盖

原因:

静态方法在编译时候,根据调用该方法的类或者对象所属的类决定

实例方法在运行时根据对象所属的类决定

如:Super s = new Sub();   编译时候S是Super类的对象,运行时 S 指向Sub类的对象;

instanceof操作符:

可以根据对象所属的类进行不同的处理

抽象类:只能被继承,不能被实例化的类

定义格式:

abstract class 类名{

abstract 返回值类型  方法名[参数列表];

...

}

说明:

抽象类中可以包含抽象方法和非抽象方法,也可以不包含抽象方法和非抽象方法;只要有一个抽象方法,就属于抽象类;

abstract class Animal{

public abstract void eat();

}

class Dog extends Animal{

public void eat(){System.out.println("狗吃骨头");}

}

class Cat extends Animal{

public void eat(){System.out.println("猫吃老鼠");}

}

class Wolf extends Animal{

public void eat(){System.out.println("狼吃羊");}

}

说明:不能创建抽象类的对象,即不能被实例化;

使用时,必须用起创建子类

子类可以定义自己的成员变量和方法,但是必须将父类的所有抽象方法代码写完;

如果子类只是实现了部分抽象的方法,那么,该类仍然是抽象类;

最终类:

final 类不能被子类化;如Java.lang.String 是final 类,这样做是基于安全的考虑;

标记为final的方法不能被覆盖;处于安全的考虑,如果方法的实现不应改变,而且对对象的一致性要求比较高,则可以创建一个final方法。

标记为final的变量代表常量,只能一次赋值;

接口:

使用interface关键字申明,可以支持多重继承

接口中只能包含:

抽象方法;

常量(默认为 public static final )【用得较少】

说明:

1、接口本身只是提供定义,使用时,必须通过类实现接口( implements ) 实现接口时,必须实现所有的方法。否则该类还是抽象类( abstract class )。

2、一个雷尅实现多个接口。

3、扩展子句(extends )必须在实现子句( implements )之前

包:

package   [.]*;

如:package shipping.domain;

说明:

1、如果有包申明,必须在源文件开始处申明。他的前面只能有空白和注释,不能有其他语句;

2、每个源文件只能有一个包申明;

3、如果没有包申明,则该类属于"默认"包(没有名称的包)

4、包的名称有层次,且用 . 分开;

import语句:

基本语法:

import [.].

或者import [.].*;

©

搞java不细心_Java 2 (基础总结)相关推荐

  1. 零基础java自学就业_java零基础到就业需要多长时间呢?

    展开全部 先以肯定的语气说明一下自学e68a84e8a2ad62616964757a686964616f31333433663030Java,多久可以找到工作: 按照目前Java的体系来说,Java的 ...

  2. java动态同步_java并发基础-Synchronized

    基础使用 基本上Java程序员都简单的了解synchronized的使用: 无非就是用在多线程环境下的同步. 看如下简单的例子: publicclassUnsafeCounter{ privatein ...

  3. java mina多线程_Java多线程基础总结九:Mina窥探(1)

    一直以来的多线程的基础总结都是脱离应用的,但是要说多线程的应用就不能不说Mina.Apache Mina作为一个高性能的Java异步并发网 络通讯框架,其内部的多线程的设计和实现可谓是学习多线程的良药 ...

  4. java preparedstatement 关闭_java - 如果基础连接已关闭,为什么isClosed()方法对PreparedStatements不返回true? - 堆栈内存溢出...

    就像标题所说的那样,我想知道为什么准备好的语句.isClosed()方法在关闭基础流(使用JDBC)后将返回false. public void someTest() throws SQLExcept ...

  5. java 正则表达式语法_Java 正则表达式基础语法

    基础符号 首尾匹配^:匹配输入字符串开始的位置 $:匹配输入字符串结尾的位置 例:"^hello$"含义为该字符串开头必须为h,结尾必须为oprivate static void ...

  6. java填空题_Java语言基础知识填空题

    Java语言基础知识填空题 想学java语言的人,要多做题才能巩固知识,下面小编为大家带来了Java语言基础知识的填空题,欢迎大家阅读! Java语言基础知识填空题. 1.浮点型数据根据数据存储长度和 ...

  7. java 并发 面试_Java 并发基础常见面试题总结

    1. 什么是线程和进程? 1.1. 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的.系统运行一个程序即是一个进程从创建,运行到消亡的过程. 在 Java 中,当我们启 ...

  8. java+向前进一_Java 线程基础

    前言 线程并发系列文章: 熟练掌握线程原理与使用是程序员进阶的必经之路,网上很多关于Java线程的知识,比如多线程之间变量的可见性.操作的原子性,进而扩展出的Volatile.锁(CAS/Synchr ...

  9. java多线程构造函数_java线程基础巩固---多线程与JVM内存结构的关系及Thread构造函数StackSize的理解...

    多线程与JVM内存结构的关系[了解]: 对于最后一个有疑问的构造中stackSize参数,其实学过编程滴人从参数字面就比较容易理解,栈大小嘛,这里从官方文档上来了解一下这个参数: 而之前在学习java ...

最新文章

  1. CactiEZ安装配置教程
  2. JavaScript中String和JSON互换
  3. zookeeper配置集群
  4. 一次FCK拿bc全过程
  5. 明天开始放假了[2.5-2.13],春节期间计划
  6. zabbix3.2监测mysql_zabbix3.2监控MYSQL状态
  7. Java400 道面试题通关宝典助你进大厂,Java 后端工程师需要掌握的知识
  8. matlab飞机飞行模型,使用 MATLAB/Simulink 设计无人机飞行控制系统(二、动力学模型建立)...
  9. css border实现渐变
  10. 用cocos studio生成plist文件
  11. python面向对象爬取某鱼颜值区主播图片
  12. 2023华中农业大学计算机考研信息汇总
  13. Pygame 官方文档 - pygame.display
  14. RedHat 6.4配置本地镜像源(适用于已停止更新的Linux系统)
  15. python常量基本类型有哪些_基本数据类型(重点)
  16. DL4J中文文档/分布式深度学习/操作指南
  17. 人工智能的应用带来便利,也引发数据滥用、隐私侵犯的担忧
  18. 猿人学·爬虫逆向高阶课
  19. 为什么鹅厂都是C++选手?
  20. 翻译-服务注册与发现

热门文章

  1. cinder与ceph的区别_分布式存储基础、Ceph、cinder及华为软件定义的存储方案 -
  2. C语言-求字符串长度-strlen()与sizeof()
  3. LeetCode-数组-54. 螺旋矩阵
  4. 利用QT实现X轴为时间动态显示曲线
  5. awk打印第一个字母
  6. 如何做自己的服务监控?spring boot 1.x服务监控揭秘
  7. 从零开始Code Review
  8. 集群调度框架的架构演进之路
  9. 有哪些通俗易懂的例子可以解释 IaaS、PaaS、SaaS 的区别?
  10. 使用四种框架分别实现百万websocket常连接的服务器--转