java的总结(上)

学了这么长时间的java基础知识,感觉自已挺有收获的,所以,就写一篇博客把我所学的分享给大家们,java就是要面向对象编程,有不同的事务就得创建不同类,去表达他们。

其中java比c++少了复杂的指针,但其实呢,java中也有指针就是引用(低配版的指针).
好了,接下来就让我们走向介绍吧!

一.数据类型
开始不得谈一下java中数据类型都有撒
其实可以分为2大类:
1.基本数据类型
2.引用类型

(1)基本数据类型
<1> 数值型
整型:
byte 1个字节 ( -128 -> +127 )
short 2个字节 (-32768 -> +32767)
int 4个字节 (-2^31 -> 2^31-1)
long 8个字节(-2^63 -> 2^63-1)
浮点型:
单精度浮点型 float 4个字节
双精度浮点型 double 8个字节
float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float.

<2>字符型
char 2个字节

  1. Java 中使用 单引号 + 单个字母 的形式表示字符字面值.
  2. 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文.

<3>布尔型
boolean(默认值为false)

(2)引用类型
一般都有数值,类,接口,字符串类型
<1>字符串类型
创建方式一般有2种

String str = "hahha";
String str1 = new String("haha");

(3)常量
常量不能在程序运行过程中发生修改.
一般有2种方式
(1)final
(2)字面值型常量

二.运算符
(1)逻辑运算符
<1> 逻辑与 &&:两个操作数都为 true, 结果为 true, 否则结果为 false.
<2>逻辑或 ||: 两个操作数都为 false, 结果为 false, 否则结果为 true
<3>逻辑非 !: 操作数为 true, 结果为 false; 操作数为 false, 结果为 true(这是个单目运算符, 只有一个操作数)
&& 和 || 支持短路求值

  1. 对于 && , 如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式.
  2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.
    <4>& 和 | (不推荐使用)
    & 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值.
    (2)关系运算符
    == != < > <= >=
int a = 10; 
int b = 20; 
System.out.println(a == b); 
System.out.println(a != b); 
System.out.println(a < b); 
System.out.println(a > b); 
System.out.println(a <= b); 
System.out.println(a >= b); 

注意: 关系运算符的表达式返回值都是 boolean 类型.

(3)位运算符
<1> 按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
<2>按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1.
<3>按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
<4>按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
(4)算数运算符
基本四则运算符 + - * / %
(5)移位运算符
<1>左移 <<: 最左侧位不要了, 最右侧补 0.
<2>右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
<3>无符号右移 >>>: 最右侧位不要了, 最左侧补 0.
(6)条件运算符
<1>就是三目运算符
表达式1 ? 表达式2 : 表达式3

三.程序逻辑控制
(1)顺序结构
顺序结构比较简单. 像我们之前写过的代码就是顺序结构的, 按照代码书写的顺序一行一行执行
(2)分支结构
<1> if语句
<2>switch语句
(3)循环结构
<1>while语句
<2>for语句
讲到循环就得有跳出的语句:
break 的功能是让循环提前结束.
continue 的功能是跳过这次循环, 立即进入下次循环.

四.方法
方法就是使代码看起来更加好,还有在执行过程中更优化.
(1)方法
<1>方法就是一个代码片段. 类似于 C 语言中的 “函数”.
方法存在的意义(不要背, 重在体会):

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候).
  2. 做到代码被重复使用, 一份代码可以在多个位置使用.
  3. 让代码更好理解更简单.
  4. 直接调用现有方法开发, 不必重复造轮子.

要注意方法的实参和形参的意义.
无法通过改变形参值去改变实参值,但凡事都要例外,用引用类型就可以.
<2>方法定义语法

// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
    方法体代码;
    [return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...);

(3)方法重载
有些时候我们需要用一个函数同时兼容多种参数的情况, 我们就可以使用到方法重载.
针对同一个类:
1.方法名相同
2.方法的参数不同(参数个数或者参数类型)
3.方法的返回值类型不影响重载.
(4)方法递归
一个方法在执行过程中调用自身, 就称为 “递归”.
递归相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式。

五.数组
(1)什么是数组
数组本质上就是让我们能 “批量” 创建相同类型的变量.
(2)数组创建

// 动态初始化
数据类型[] 数组名称 = new 数据类型 [长度];
// 静态初始化
数据类型[] 数组名称 = { 初始化数据 };


int[] arr = new int[3];
int[] arr = {1, 2, 3};

(3)数组的使用
数组的各种内置方法,有时候也挺好用的.数组用好下标,
<1>获取长度 & 访问元素
<2> 数组作为方法的参数
<3> 理解引用类型(其实就是低配版的指针)
所谓的 “引用” 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大).

(4)数组在内存中存储在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值