Java注释、Java变量、八种数据类型、基本数据类型变量间的运算、运算符、流程控制、函数(方法)、面向对象

1、Java注释

  • 单行注释 //

  • 多行注释

    /*
    	这是注释
    	这是注释
    */
    
  • 文档注释

    /**
    	注释
    /*
    
    /**
     * 这是一个HelloWorld类
     * @author 14664
     *
     */
    public class HelloWorld {
    	/*
    	 * 程序执行入口
    	 */
    	public static void main(String[] args) {
    		// 打印,在控制台输出内容
    		System.out.println("Hello World!!");
    	}
    }
    

2、Java变量

变量是内存中的一个存储区域,是程序中最基本的存储单元,包括:变量类型、变量名和存储的值

作用:用于在内存中保存数据

注意:

  • java变量必须先声明再使用
  • 变量只有在作用域中有效
  • 使用变量名来访问这块区域的数据
  • 在同一个作用域中,不能定义重名的变量
String str = "字符串";
System.out.println(str);
public static void main(String[] args) {

}
public void test() {
    // str1只能在当前的函数使用,上面的main函数是使用不了的
    String str1 = "另外一个字符串";
    System.out.println(str1);
}

3、八种数据类型

数值型:byte、short、int、long、float、double

字符型:char

布尔型:boolean

java各整数类型有固定的表数范围和字段长度,不受操作系统影响,以保证java程序的可移植性

java整型变量默认为int,long类型的变量后面需要加“l”或者“L”

java浮点型默认为double,声明float的常量后面要加’f’或者’F’

整型

类型占用存储空间表数范围
byte1字节=8bit-128 — 127
short2字节-2^15 — 2^15 - 1
int4字节-2^31 — 2^31 - 1
long8字节-2^63 — 2^63 - 1

bit是计算机中最小的存储单位。1MB = 1024K 1GB = 1024M 1T = 1024GB

计算机中,所有的数据都是二进制数据

浮点型:

浮点型默认为double,声明float的常量后面要加’f’或者’F’

类型占用的存储空间表数范围
单精度float(只能精确到7位有效数字)4字节-3.403E38 — 3.403E38
双精度double(精确度是float的两倍)8字节-1.798E308 — 1.798E308

字符类型:

使用英文单引号’’

类型占用的存储空间
char2个字节(1个字符)

布尔类型:

true或者false

占用空间取决于java虚拟机,1个字节,4个字节都有可能

补充:

ASCII码

​ ASCII 是用来表示英文字符的一种编码规范。每个ASCII字符占用1 个字节,ASCII 编码可以表示的最大字符数是255。

UNICODE码

​ 对于中文等比较复杂的语言,255个字符显然不够用。UNICODE作为一个全新的编码系统应运而生,它可以将中文、法文、德文……等等所有的文字统一起来考虑,为每一个文字都分配一个单独的编码。

UTF-8

​ 使用UNICODE码,一些小数据可以使用一个字节表示的,却得用多个字节表示,浪费资源

​ utf-8为了节省资源,采用变长编码,编码长度从1个字节到6个字节不等

4、基本数据类型变量间的运算

  • 自动类型提升

    当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型

    char、byte、short -> int -> long -> float -> double

  • 强制类型转换

    需要强制转换符(),并且精度会有损失

    float f = 1.9f;

    int a = (int)f; 得到 1

  • String可以和八种数据类型变量做运算,做连接运算

5、运算符

(1)四则运算符

+、-、*、/

++、–

% 取余

(2)赋值运算符

=、+=、-=、*=、/=、%=

(3)比较运算符

==、!=、>、>=、<、<=

(4)逻辑运算符

&(与): 多个表达式进行计算时,每一个表达式为true的时候,整体的结果是true。即使第一个为false,还是会继续判断后面的表达式

&&(短路与):与&效果一样,不同在于前面的表达式为false,就不会判断后面的表达式了

|(或):每一个表达式做判断,只要有一个为true,最后的结果就为true

||(短路或):与|效果一样

!(取反):!true为false,!flase为true

6、流程控制

(1)if

条件表达式的结构一定是true或者false。为true则执行大括号里面的语句

语法:

if(条件表达式) {
    // 代码块
}

(2)if…else…

条件表达式为true时,执行代码块1,为false时,执行代码块2

语法:

if(条件表达式) {
    // 代码块1
} else {
    // 代码块2
}

(3)if…else if … else…

从上往下做判断,只要条件表达式为true,则进入分支执行对应的代码块

语法:

if(条件表达式1) {
    // 代码块1
} else if(条件表达式2) {
    // 代码块2
} else if(条件表达式3) {
    // 代码块3
} else {
    // 代码块4
}

(4)switch

switch只能做等值判断,表达式只能是byte、short、char、int、String

语法:

switch(表达式) {
    case 常量1:
        // 代码块1
        break;
    case 常量2:
        // 代码块2
        break;
    default:
        // 代码块3
        break;
}

(5)三元运算符

语法:表达式 ? 表达式1 : 表达式2 (表达式1 和 表达式2 的类型要一致)

机制:表达式为true,则整个结果就是表达式1

​ 表达式为false,则整个结果就是表达式2

(6)循环结构

  • for循环

    语法:

    for(初始变化量;条件表达式;操作表达式) {
        // 循环体
    }
    

    1执行初始变化量

    2判断条件表达式,如果为true,则执行3,如果为false则执行5

    3执行循环体,执行4

    4执行操作表达式,执行3

    5结束循环

  • while 循环

    语法:

    while(条件表达式) {
        // 循环体
    }
    
  • do…while循环

    先执行循环体再判断条件表达式

    语法:

    do {
        // 循环体
    } while (条件表达式)
    

7、函数(方法)

方法是一段能独立完成功能模块的代码块。可以被多次调用,提高代码的复用性。

语法:

public static 返回值类型[void] 方法名称(数据类型: 变量名) {
    // 方法体
    [return 结构值];
}

8、面向对象

把大象装进冰箱

面向过程:1打开冰箱、2大象放入冰箱、3关上冰箱

面向对象:

​ 1大象

​ 属性:体重、身高、性别等

​ 方法:吃饭、走路等

​ 2冰箱

​ 属性:尺寸、品牌、颜色等

​ 方法:开门、关门、制冷等

​ 执行过程:创建一个冰箱,创建一只大象,让冰箱自己开门,让大象走进冰箱,让冰箱关门

OOP(object oriented programming)面向对象。java认为万物皆对象。

  • :某些具有相同属性和行为的事物抽象成一类。

比如:狗是一个类,那么阿拉斯加、哈士奇、萨摩耶就是这个类的对象。类似模板和样本的关系,通过一个模板可以创建多个样例。(类是抽象的概念,对象才是真正的实例)

  • 定义类:(类名称:首字母要大写,驼峰式,见名知意)
class 类名称 {
    属性
    方法
}
  • 创建对象:类名 变量名 = new 类名(); 通过对象可以访问其属性和方法

  • 类的属性:八个基本数据类型,引用数据类型:类、接口、数组

数据类型默认值
byte0
short0
int0
long0
float0.0
double0.0
booleanfalse
char‘’
引用数据类型null
  • 类的方法
public static 返回值类型[void] 方法名称(数据类型: 变量名) {
    // 方法体
    [return 结构值];
}
  • 创建对象的内存结构

    栈:用于存储基本数据的值或者局部变量。先进后出,存取的容量小,存取速度快。

    堆:用于存储引用数据类型。存取的容量大,速度慢一些。

    数据共享区(方法区):存储引用数据类型,存储一些共享的数据(比如方法)

​ 对象存储在堆中,引用存储在栈中,堆中的每一个数据都是隔离的;

​ 每一个class加载到数据共享区,jvm会解析这个类的内容。

  • 局部变量
    定义:局部变量是定义在方法中或者语句块中

    属性特点

    ​ 作用范围:只限于所定义的大括号中(以及自括号内)

    ​ 存储位置:栈内存中

    ​ 默认值:无,使用时一定要初始化

    ​ 生命周期:所属的大括号范围,大括号结束了,局部变量消失,对象引用也消失了

  • 成员变量

    定义在类中,也可以叫类的属性

    除了成员变量其他都是局部变量

    属性特点

    ​ 作用范围:根据权限的修饰符(public private protected default)

    ​ 存储的位置:堆内存中或者数据共享区(在static中会提到)

    ​ 默认值:有

    ​ 生命周期:由jvm垃圾回收机制回收

  • 匿名对象

    匿名对象没有栈中的变量来引用,所有会被回收,所以匿名对象是没有意义的

    new Person();
    
  • 封装

    目的:提高数据的安全性,通过封装,可以实现对属性访问权限的控制,同时增加程序的可维护性

    封装:将属性私有化,使用private关键字修饰属性,这种属性只有当前类才能访问到

    ​ 一般每一个私有属性提供公共public的get和set方法供外界访问我们的私有属性

​ public、private、protected 、default作用范围(子类涉及到继承,后面再说)

同一个类同一个包不同包非子类不同包子类
private可以访问不可以访问不可以访问不可以访问
public可以访问可以访问可以访问可以访问
protected可以访问可以访问不可以访问可以访问
default可以访问可以访问不可以访问不可以访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值