Java学习——数据类型【2】
1. 对象与类
对象:类的一个实例,有状态和行为。
类:一个模板,描述一类对象的行状态和行为。
2. 类可以包含的变量
| 类型 | 局部变量 | 成员变量 | 类变量(静态变量) |
| 定义位置 | 方法、或语句块中 | 类中,方法体外 | 类中,方法体外,且为static |
| 访问修改符 | 不能使用 | 一般为private | 一般为public |
| 默认值 | 无 | 0,(boolean)false,(引用)null | 0,(boolean)false,(引用)null |
| 初始化 |
必须被初始化, 否则编译错误 |
声明/构造方法中指定 | 声明/构造方法/静态语句块中指定 |
| 访问方式 | 对象引用.变量名 | 类名.变量名 | |
| 生命周期 |
在对象创建的时候创建, 在对象被销毁的时候销毁 |
在程序开始时创建, 在程序结束时销毁 |
|
| 存储位置 | 栈 | 静态存储区 |
3. 源文件声明规则
- 一个源文件一个public类,多个默认类
- 源文件名和public类名字一样
- 语句的先后:package语句(类定义在该包中)—>import语句—>类定义
- import语句和package语句对源文件中定义的所有类都有效。同一个源文件,不能有不同的包声明
4. Java基本数据类型
| 类别 | 整数 | 浮点数 | 布尔型 | 字符型 | ||||
| 类型名 | byte | short | int | long | float | double | boolean | char |
| 位数 | 8 | 16 | 32 | 64 | 32 | 64 | 1 | 16 |
| 表示 | byte a = 10 | short a = 10 | int a = 10 | long a = 10L | float f = 10.0f/10.0F | double d = 10.0 | boolean a = true | char a = 'A' |
| 其它 |
三种进制: 进制:int a = 010 10进制:int a = 10 进制:int a = 0x10 |
科学记数法: 3.14E3=3.14*103 3.14E-3=3.14*10-3 |
单一的任何Unicode字符 | |||||
5. 类型转换
- 自动类型转换:byte,short,char—>int—>long—>float—>double
- 不能对boolean类型进行类型转换
- 强制类型转换:int a = 10; byte b = (byte) a;
- 浮点数转成整数:直接舍弃小数
6. 访问修饰符
访问控制符来保护对类、变量、方法和构造方法的访问。下表表示访问权限:
| 修饰符 | 当前类 | 同一包 | 子孙类 | 其它包 |
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | N |
| default(默认) | Y | Y | N | N |
| private | Y | N | N | N |
访问权限继承
- 子类中约束必须不比父类强(public—>public,protected—>protected/public)
- 父类中private的方法不能被继承
- private 和 protected类只能定义成类中类
7. 非访问修饰符
| 修饰符 | static | final | abstract | synchronized | volatile |
| 修饰 | 类方法,类变量 | 类,方法,变量 | 类,方法 | 方法 | 变量 |
| 作用 |
一个类只有一个类变量的拷贝 静态方法不能用非静态变量 |
类不能够被继承 方法不能被继承类重新定义 变量为常量,不可修改的,只能被显式初始化一次 |
抽象类不能用来实例化对象 一个类/方法不能同时被 abstract 和 final 修饰 一个类包含抽象方法,则该类一定要声明为抽象类,否则将出现编译错误 抽象类可以包含抽象方法和非抽象方法 抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类 |
方法同一时间只能被一个线程访问 |
变量被线程访问时,强制从共享内存中重新读取该成员变量的值 当成员变量发生变化时,强制线程将变化值回写到共享内存 |
| 使用 |
public abstract void sample(); abstract class className{} |
public synchronized void showDetails(){} |
8. instanceof 运算符
作用:检查该对象是否是一个特定类型
使用方法:
String name = 'James';
boolean result = name(变量名)instanceof String(类名); // 由于 name 是 String 类型,所以返回真
Java学习——数据类型【2】的更多相关文章
- 1 Java学习之 基本数据类型
1. 基本概念 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据类型都需要在学习 ...
- Java 学习(4):基本数据类型,变量类型
目录 --- 基本数据类型 --- 变量类型 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用 ...
- Java学习总结之基本数据类型
Java的数据类型分为基本数据类型和引用数据类型, 今天总结的是基本数据类型.在Java中,一共有八种基本数据类型,分别为整数类型(byte,short,int,long).浮点类型(float,do ...
- Java学习总结一 数据类型
@Java300 学习总结 一.Java 基本数据类型分类如下: 整型变量:byte.short.int.long 浮点型变量:float.double 字符型变量:char 布尔型变量:boolea ...
- Java 学习:数据类型
前言:Java属于强类型语言 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 优势就是安全性高,但劣势速度慢 数据类型 Java的数据类型分为两大类: 基本类型(primit ...
- Java学习笔记之:Java的数据类型
一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...
- Java学习笔记(基本数据类型和变量命名规则)
java基本数据类型 变量 1.变量就是可变的量. 2.常量就是不可变的量. 3.字面量:Java的变量和常量中存放的具体的数据成为字面量. 变量 命名规则: (1)首字母是英文字母.$或下划线,由字 ...
- Java学习【第1篇】:数据类型(2019-02-13 11:00)
1.Java 基本数据类型 Java 的两大数据类型: 1.内置数据类型 byte.short.int.long.float.double.boolean.char 2.引用数据类型 指向一个对象, ...
- java学习中的一些疑惑解答
一.java中的枚举类型: 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的.例如星期一到星期日七个数据元素 ...
随机推荐
- linux正确重启MySQL的方法
修改了my.cnf,需要重启MySQL服务,正确重启MYSQL方法请看下面的文章 由于是从源码包安装的Mysql,所以系统中是没有红帽常用的servcie mysqld restart这个脚本 只好手 ...
- 已经安装php后,再增加扩展模块(不重新编辑php)
下面以安装curl为例,介绍具体安装步骤. 1.安装crul wget http://curl.haxx.se/download/curl-7.19.6.tar.gz tar -zxvf curl-7 ...
- ubuntu apt-get
近期重新拿起linux的书看了下,整理了一下linux的命令. ubuntu预装了APT和dpkg ,“APT”是 “Advanced Package Tool”的简写,“dpkg ”是“Debian ...
- C语言-06复杂数据类型-03指针
指针变量的定义 变量类型 *变量名; #include <stdio.h> int main() { // 指针就一个作用:能够根据一个地址值,访问对应的存储空间 // 指针变量p前面的i ...
- FFMPEG视音频编解码零基础学习方法-b
感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...
- 【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用
更新了iOS9和XCode7,之后,Swift变成了2.0,有了新的语法习惯,iOS也加强了安全方面的限制.我们原本的项目就会出现不少问题.先来看我之前的项目中出现的3个错误吧和相关的解决办法吧. 1 ...
- Discuz! 7.2 SQL注入exp
已经有人写出一些工具了,但是感觉不怎么好用,就自己写了个. 参数:1.可直接getshell2.爆管理账号密码3.爆表前缀如果表前缀不是默认的cdb_ 只需更改代码中的 $table即可,方便快捷. ...
- 配置PhpStorm调试PHP
配置PhpStorm调试PHP 第一步:配置 XDebug 下载安装XDebug到本地环境(参考:Zend Studio 9.x + xampp + XDebug 调试环境安装详解),打开php.in ...
- 李洪强漫谈iOS开发[C语言-025]-赋值运算符案例
- [wikioi]最优布线问题
http://wikioi.com/problem/1231/ Kruskal+并查集.comp函数里面如果用const引用的话,可以减少copy.并查集find的时候是递归找父亲的根.无他. #in ...