码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础

时间:2020-03-31 20:48:43      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:方式   apple   bsp   contain   方法调用   使用   初始   ble   基本数据   

JAVA基础

在java语言中,一个java文件中只能定义一个被public修饰的类,且被public修饰的类的类名,必须和java文件的文件名相同

变量

理解(通过名字访问到)变量就是“一片”内存空间。变量的值,就是指存储在这块属于这个变量的内存中的数值。

变量的定义格式:数据类型 变量名 = 变量值

数据类型:一种数据类型,其实表示的就是一个数据集和基于该数据集的一组合法操作
基本数据类型:数值型:整数类型(byte、short、int、long)浮点类型(float、double)
字符型(char):
布尔类型(boolean):
引用数据类型:类(class)、接口(interface)、数组([])

对于变量而言,编译器不可能知道变量当前存储的值究竟是多少,禁止把大类型的值赋值给小类型

对于jvm来说,它要求参与运算的数之间,他们必须是同一种类型,比如说: int + byte,jvm首先会将byte变量读取出来,变成一个int类型的值,然后是两个int类型的值做运算。类型之间默认的转化规则 :小类型 -》大类型
数据类型的转化(jvm默认类型转化规则):
1. boolean类型的值不能直接转化为其它数据类型的值
2. byte,short,char—>int—>long—>float—>double
3. byte,short,char相互之间不转换,他们参与运算首先转换为int类型
?
强制转化
目标类型 变量名=(目标类型)(被转换的数据);
使用变量的注意事项:
  作用域
  变量有效的时间范围,这个范围通常用{}来界定
?
  初始化值
  变量在使用之前,由编译器强制必须赋初值
  建议一行定义一个变量
  从代码的可读性角度来考虑

二维数组

打印杨辉三角

public static int[][] triangleYang(int n) {
int[][] result;
if (n == 1) {
  result = new int[][]{{1}};
  return result;
}
if (n == 2) {
  result = new int[][]{{1}, {1, 1}};
  return result;
}
//当 n>=3 的的时候
//第二种初始化方式,初始化结果二维数组
result = new int[n][];
//先初始化第一行和第二行数据
result[0] = new int[]{1};
result[1] = new int[]{1, 1};
//从第三行开始,计算杨辉三角的值
for (int i = 2; i < n; i++) {
  result[i] = new int[i + 1]; //第i(从0开始编号)行, 元素个数 i + 1
  result[i][0] = 1; //一行的第一个元素值为1
  result[i][i] = 1; //一行的最后一个元素,值也为1
  for (int j = 1; j < i; j++) {
    //第i行第j列的值 = 第i - 1行第j列值 + 第i - 1行第j - 1列
    result[i][j] = result[i - 1][j] + result[i -1][j - 1];
  }
}
return result;
}

方法

方法定义

方法定义:方法就是完成特定功能的代码块(在有些其他语言中,也被成为函数function)
?
  方法定义的格式
?
  修饰符 方法返回值类型 方法名(参数1类型 参数1名称,参数2类型 参数2名称, ……) {
      方法体语句;
      return 返回值;
  }
?
  方法定义的格式说明:
  修饰符:现在先认为是固定的 public static
  返回值类型:方法体中的代码执行结果的数据类型
  方法名:标识符
  参数:类比数学中函数的自变量 z = f(x, y)
  方法体:实现具体功能的语句结合
  return:跳转控制关键字
  返回值:方法执行的到的最终结果,必须和方法名称前面的“返回值类型”保持对应
?
  定义方法:两数求和(int)
?
  如何写一个方法呢?两个明确
  返回值类型 明确功能结果的数据类型
  参数列表 明确有几个参数,以及参数的类型
?
  对于方法的调用:
  1.单独调用:方法名称(参数)
  2.打印调用:System.out.println(方法名称(参数))
  3.赋值调用:数据类型 变量名称 = 方法名称(参数)
?
  方法调用注意事项:
  1.方法不调用不执行
  2.方法与方法是平级关系,不能嵌套定义
  3.方法定义的时候参数之间用逗号隔开
  4.方法调用的时候不用在传递数据类型
  5.如果方法有明确的返回值,一定要有return带回一个值

方法重载

 方法重载(overload) 在同一个类中,允许存在一个以上的同名方法,
a.只要它们的参数个数
b.参数类型不同
c.参数顺序不同:不是指形式参数的变量名顺序不同,而是指形式参数类型顺序
?
编译器如何区分方法呢? 通过方法签名 方法签名:
方法名 + 参数列表 比如 add(int, int)、add(double, dobule)

流程

顺序结构

判断结构

  1. if

  2. if-else

  3. 扩展if-else

选择语句-switch

switch语句注意事项:

  1. 多个case后面的数值不可以重复

  2. switch后面小括号当中只能是下列数据类型:基本数据类型:int/short/char/byte

    引用数据类型:String字符串/enum枚举

  3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略(不推荐省略) 匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整结束为止。

循环结构

  1. for循环:

for(初始化表达式;布尔表达式;步进表达式){

循环体;

}

  1. while循环:

while(条件判断){

循环体;

}

  1. do-while循环

do{

循环体;

}while(条件判断)

条件控制语句

  1. break

  2. continue(一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环)

Java内存

java的内存需要划分为5个部分:

  1. 栈(Stack):存放的都是方法中的局部变量,方法的运行一定要在栈中。局部变量:方法的参数,或者是方法{}内部的变量。作用域:一旦超出作用域,立刻从占内存中消失。

  2. 堆(Heap):凡是new出来的东西,都在堆当中’。堆内存里面的东西都有一个地址值:16进制。堆内存里面的数据,都有默认值。规则:整数----默认为0,浮点数----默认为0.0,字符----默认为\u0000,布尔----默认为false,引用类型----默认为null。

  3. 方法区(Method Area):存储.class相关信息,包含方法的信息。

  4. 本地方法栈(Native Method Stack):与操作系统相关.

  5. 寄存器(pc Register):与CPU相关。



JAVA基础

标签:方式   apple   bsp   contain   方法调用   使用   初始   ble   基本数据   

原文地址:https://www.cnblogs.com/zl5233/p/12608062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!