变量及数据类型
计算机功能:
1、存储数据
(1)临时存储:
应用程序运行期间,用到数据,需要用计算机的缓存(memory内存条)来存储,随着程序运行而存在,程序结束后,数据将不复存在。
(2)永久存储
在计算机硬件介质(disk硬盘、u盘、cdrom、sd卡…)能够存储永久信息,与程序没有直接关系,一直永久存储在计算机的硬件存储介质中。
2、数据运算
(1)算术运算(结果只能是数值)
+、-、*、/、%
(2)关系比较运算(结果只能是逻辑布尔值:true/false)
<、>、<=、>=、==、!=
(3)逻辑运算(结果只能是逻辑布尔值:true/false)
&&、||、!
计算机程序存储方式是以计算机缓存(内存)临时存储。
大概如下:
00000001 | ||
00000002 | 2000 | Count |
00000003 | ||
00000004 | Workit | Sname |
00000005 | ||
00000006 | A | Vchar |
…… | …… | …… |
Ffffffffff | ||
内存地址 | 数据 | 变量 |
8G:8x1024x1024x8
通过内存地址,找对应内存单元格的数据。
00000006->‘A’
3、变量
对计算机缓存单元格的一个别名alias,我们称为变量variable。
变量的名称只要是一个合法的标识符。
(1)_,$,字母开头,后面+字符|数字组合合成的一个字符串。
(2)不能是java编译器默认的关键字。(public,class)
(3)最好用一个比较容易记的单词。
变量使用步骤:
(1)申明:数据类型 变量名称;
(2)赋值:变量名称 = 数据;(注意:变量申明和赋值,可以用一句话表示:)
(3)运算:
4、数据类型(80%面试题:列出java的基本数据类型)
(1)基本数据类型
1.数值型
- 整型
字节型byte
短整型short
整型int
长整型long
- 非整型
单精度float
双精度double
2.非数值型
- 字符型char
由单引号括起来的单个字符
- 布尔型boolean
true/false
3.引用数据类型
String:由双引号括起来的n(n>=0)个字符组合
Object
Collection
Array
public static void main(String[] args) { // 测试基本数据类型 byte b_data1 = 1; byte b_data2 = 127; byte b_data3 = (byte)(b_data1 + b_data2); //byte类型最大值127 = 2的8-1次方-1 = 2*2*2*2*2*2*2-1,128超过了byte的范围 System.out.println(b_data1 + " + " + b_data2 + " = " + b_data3); } |
1 + 127 = -128 |
案例分析1:
Byte->short->int->long->float->double 自动转换, 高精度向低精度转换的,必须强制转换
案例分析1:
String stdname = "张三"; String subject = "java"; int score = 90;
System.out.println("=====学生成绩信息========"); System.out.println("学生姓名:" + stdname); System.out.println("考试科目:" + subject); System.out.println("考试成绩:" + score); |
打印出如下效果:
=====学生成绩信息========
学生姓名:小沈阳
考试科目:java
考试成绩:90
案例分析2:
package com.workit.part2; import java.util.Scanner;//类似:#include "stdio.h" public class Demo02 { /** * @param args */ public static void main(String[] args) { /* * 输入某学生三科成绩,计算平均分。 */ //通过键盘输入扫描器获得键盘输入数据 Scanner input = new Scanner(System.in); System.out.println("请输入html考试成绩:"); int html_score = input.nextInt();//从键盘输入一个整数,赋值给html_score变量
System.out.println("请输入java考试成绩:"); int java_score = input.nextInt();//从键盘输入一个整数,赋值给html_score变量
System.out.println("请输入oracle考试成绩:"); int oracle_score = input.nextInt();//从键盘输入一个整数,赋值给html_score变量
//计算平均分:先计算总分,然后总分/3 int sum = html_score + java_score + oracle_score; double avg = sum/(3*1.0);
//结果输出 System.out.println("三科成绩清单如下:"); System.out.println("html\tjava\toracle"); System.out.println("==============================="); System.out.println(html_score + "\t" + java_score + "\t" + oracle_score); System.out.println("==============================="); System.out.println("三科成绩总分是" + sum + "分,平均分是" + avg + "分.");
} } |
请输入html考试成绩: 90 请输入java考试成绩: 96 请输入oracle考试成绩: 89 三科成绩清单如下: html java oracle =============================== 90 96 89 =============================== 三科成绩总分是275分,平均分是91.66666666666667分. |
语言 | C | Java |
输出 | Printf | System.out.println(); |
输入 | scanf | Scanner input = new Scanner(System.in); |
C与java输入输出的区别:
语言是相通的,学会一门语言,其他的语言几乎雷同。
案例分析3:
public static void main(String[] args) { //假设输入一个vip会员号是4位整数,求会员号每个位数之和。 //9876 Scanner input = new Scanner(System.in); System.out.print("请输入4位数的会员vip号码:"); int vipcode = input.nextInt();
//求会员号每个位数之和 int sum = 0; int q = vipcode / 1000; //千位 int b = vipcode % 1000 / 100; //百位:9876%1000 = 876;876/100 = 8; int s = vipcode % 100 / 10; //十位:9876%100 = 76;76/10 = 7; int g = vipcode % 10; //个位 sum = q + b + s + g; System.out.println("VIPcode = " + vipcode + ",各位数之和为:" + sum );
} |
假设输入一个vip会员号是4位整数,求会员号每个位数之和。
//8765 8+7+6+5 = 26