1. 数据类型
1.1 Java中数据类型的分类,重点
-
基本数据类型
-
引用数据类型
1.2 基本数据类型的四类八种
整数类型:byte、short、int、long
浮点类型:float、double
字符类型:char
布尔类型:boolean,只有两个取值,true和false
注意:在C语言里,long 可以写为long int, 而java语言里不可以.java语言里不存在long int这种数据类型.如下: 这是C语言的.
这是java语言的:
都报错了,因为java里没有这些数据类型.
而C语言里没有byte 这种数据类型.
扩展:
引用数据类型,在代码中除了上面的四类八种*其他所有的都是引用数据类型。*
基本数据类型需要记忆的
-
byte的取值范围:学过计算机组成原理的都知道.由于数据在内存中是以补码形式存在的,因此取值范围是补码的取值范围.
-128 ~ 127
-
int的大概取值范围:
-21亿多 ~ 21亿多
-
整数和小数的取值范围的大小关系:
byte < short < int < long < float < double
-
扩展:
不同的数据类型,在内存中占用的字节数量是不一样的。学过C语言知道.
1.3 不同数据类型变量的定义
注意点:
定义long类型变量的时候,后面的数据值要加L后缀。建议大写。(C语言里也是这样.)
定义float类型变量的时候,后面的数据值要加F后缀。建议大写。(C语言里也是这样.)
整数没有指定类型,默认是int类型
小数没有指定类型,默认是double类型.
代码示例:
//byte byte b = 10; System.out.println(b);//10 //short short s = 100; System.out.println(s);//100 //int int i = 99; System.out.println(i);//99 //long //如果给long类型的变量赋值。 //后面的数据值要加L后缀。 //L可以是大写的,也可以是小写的。 //建议大写。 long n = 9999999999L; System.out.println(n); //float float f = 11.1F; System.out.println(f); //double double d = 10.2; System.out.println(d); //char char c = '我'; System.out.println(c); //boolean boolean bb = true; System.out.println(bb);
1.4 变量的练习
练习的目的:
以后在实际开发中,根据不同的数据来选择不同的数据类型
练习1:
定义变量记录老师的信息。
代码示例:
public class VariableDemo2{ public static void main(String[] args){ //老师的姓名 String s = "黑马谢广坤"; //老师的年龄 int i = 18; //老师的性别 char c = '男'; //老师的身高 double d = 180.1; //是否单身 boolean b = true; //输出所有变量 System.out.println(s); System.out.println(i); System.out.println(c); System.out.println(d); System.out.println(b); } }
练习2:
定义变量记录电影的信息。
代码示例:
public class VariableDemo2{ public static void main(String[] args){ //定义变量记录电影的名字 String name = "送初恋回家"; //定义变量记录主演的名字 String personName = "刘鑫等等"; //定义变量记录年份 int year = 2020; //定义变量记录分数 double score = 9.0; //输出所有变量 System.out.println(name); System.out.println(personName); System.out.println(year); System.out.println(score); } }
练习3:
定义变量记录手机的信息。
代码示例:
public class VariableDemo2{ public static void main(String[] args){ //定义变量记录手机的价格 double price = 5299.0; //定义变量记录手机的品牌 String name = "华为"; //输出所有变量 System.out.println(price); System.out.println(name); } }
注意: java语言的char类型和C语言插入类型是不一样的.看如下代码:
发现中文是打印不出来的.因为在C语言中,一个汉字所占字节不是一个字节,而是多个字节.
到底C语言中的汉字占用几个字节,只跟其采用的字符集的编码方案有关.
gb2312中占用2个字节,utf-8中占用3个字节
再看看java语言的.
我们发现java是能打印出汉字的这是为什么呢?
今天我就跟大家聊聊有关java语言中的汉字占几个字节,可能很多人甚至一些科班出身的在校生都不太了解,为了让大家更加了解,我给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
java中,只要是字符,不管是数字还是英文还是汉字,都占2个字节,都是一个char。char c1 = '中';仅仅指java语言.
char c2 = 'A';
char c3 = '1';
确切说,Unicode编码是指一类编码的统称,而非某个具体编码。utf-8跟unicode是不一样的。
以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。
因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1个char类型的空间。
扩展:
Unicode是一个编码方案,Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 编码共有三种具体实现,分别为utf-8,utf-16,utf-32,其中utf-8占用一到四个字节,utf-16占用二或四个字节,utf-32占用四个字节。目前Unicode 码在全球范围的信息交换领域均有广泛的应用。
2. 标识符
2.1 什么是标识符?
给类、方法、变量起的名字就是标识符。
简单理解:在代码中,凡是我们自己起的名字都是标识符,都要遵守我们下面讲解的规则。
2.2 标识符的硬性要求
必须要这么做,否则代码就会报错。
-
必须由数字、字母、下划线、美元$符组成
-
不能以数字开头
-
不能是关键字
-
区分大小写
2.3 标识符的软性建议
如果不这么做,代码不会报错,但是影响阅读,也显得代码很low
建议:不管是硬性要求还是软性建议,咱们都要遵守。
符号的话, 只能以美元符号$开头,在C语言中也是.
小驼峰命名法:
适用于:方法名、变量名
-
一个单词,全部小写。
比如:name,age,gender,address
-
多个单词,从第二个单词开始首字母大写。
比如:firstName
大驼峰命令法:
适用于:类名
-
一个单词,首字母大写。
比如:Demo,Test,Student
-
多个单词,每一个单词的首字母都要大写。
比如:HelloWorld
建议:
不管起什么名字,都要遵守四个字:见名知意。
如果英文单词记不住,不要使用拼音,用有道词典查一下。如果担心自己时间长了忘了,写注释。
3. 键盘录入
3.1 目的:
为了让我们变量记录的数据变得更加灵活。
3.2 实现步骤:
1.导包
简单理解:先要找到Scanner这个类在哪?
2.创建对象
简单理解:申请一下去我要开始用Scanner这个类了。
3.接收数据
只有等号右边才是真正的接收数据,接收到之后,把数据赋值给左边的变量
代码示例:
//1.导包 ,实际作用:先找到Scanner这个类在哪 //必须要写在第一行,类定义的外面 import java.util.Scanner; public class ScannerDemo1{ public static void main(String[] args){ //2.创建对象 , 实际作用:申请一下我要开始用Scanner这个类了。 Scanner sc = new Scanner(System.in); //加一个提示 System.out.println("请输入一个整数"); //3.把接收到的数据赋值给一个变量 int number = sc.nextInt(); System.out.println(number); } }
3.3 键盘录入的练习
核心:
如果我们需要多次键盘录入数据,那么第一步和第二步不需要多次书写。只要多次书写第三步即可
代码示例:
import java.util.Scanner;//找到Scanner这个类在哪 public class ScannerDemo1{ public static void main(String[] args){ //申请一下,我准备要用Scanner这个类了。 Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数"); int number1 = sc.nextInt(); System.out.println("请输入第二个整数"); int number2 = sc.nextInt(); //求和 int result = number1 + number2; System.out.println(result); } }