java基础和4 基本数据类型
java 基本特征
- Java是一种大小写敏感的语言,例如:
class不能写成Class- 命名为
HelloWorld的类和命名为Helloworld的类是不一样的
- 程序的文件名称必须和类的名称完全相同,Java代码的文件都以类名加
.java后缀进行命名- 比如
HelloWorld类的代码保存在HelloWorld.java文件中
- 比如
public static void main(String[] args)是一个方法,这是Java程序的入口- 任何Java程序的代码都是从这个方法开始执行的
System.out.println("Hello 天码营!");是一个方法的调用,这行代码向控制台输出了Hello 天码营!- 这行代码你可能还看不太懂,你现在只需知道:将希望输出信息放到
System.out.println(...)的括号内就能在控制台中显示出来 - 注意
System.out.print()和System.out.println()区别,后者会在最后增加一个换行符
- 这行代码你可能还看不太懂,你现在只需知道:将希望输出信息放到
标识符
ava程序的各个组成部分都需要名字。类名、变量名、方法名、方法参数名等都被称为标识符。比如HelloWorld这个类名在代码中就是一种标识符。标识符是我们自己来命名的。
关于Java标识符,我们需要了解以下几点:
- 所有的标识符都应该以字母(A-Z或者a-z),美元符(
$)、或者下划线(_)开始 - 首字符之后可以是字母(A-Z或者a-z),美元符(
$)、下划线(_)和数字的组合 - Java语言自带的关键字不能用作标识符,比如你不能定义一个类或者方法命名为
class - 标识符是大小写敏感的
比如blog、$user、_title和__1_content都是合法的标识符;而123blog和-user都是非法标识符。
为了程序的可读性,一般情况下,类名以大写字母开头,比如HelloWorld以大写字母H开头;方法名一般以小写字母开头,比如main方法以小写字母m开头。如果名称中包含几个单词,从第二个单词开始每个单词首字母大写,这种命名方式我们称之为驼峰命名法。
注释
ava中的注释分为三种类型。
- 单行注释:在注释内容前加两个斜线
//,则Java编译器会忽略掉//的信息 - 多行注释:在要注释的内容前面添加
/*,在注释的内容后添加*/ - 文档注释:在要注释的内容前面添加
/**,在注释的内容后添加*/,这是一种特殊的多行注释,注释中的内容可以用以生成程序的文档,具体用法我们以后讲解。
Eclispse的简单实用
初学Java时我们的代码往往不够规范,可以使用Eclipse对代码进行格式化,这样不仅代码更加清晰漂亮,老师或者同学看你的代码也更加方便。用快捷键CTRL+Shift+F(Windows) / Command+Shift+F(Mac)对代码进行格式化操作
左侧:黄色感叹号是警告,编译可以通过,比如定义了一个没有使用的变量就会有编译警告。但是一般情况下我们还是要消除警告,因为这说明代码有不够规范的地方。
https://www.tianmaying.com/tutorial/eclipse-installation-and-usage eclispse的安装与使用技巧
面向对象基础
比如每一辆汽车都有自己的颜色和速度,因此我们在Car类中定义了两个成员变量,通常我们也称之为属性:
方法也叫函数;
包:
在开发过程中,类的数量会越来越多,我们可以通过包(Package)来组织类。包的命名一般以一个组织的域名的反写开头。比如天码营的域名是tianmaying.com,那么天码营开发的代码,包名一般就会以com.tianmaying开头。
命名冲突即类同名的情况,想想一下同一个文件夹下是不可以有两个同名的文件的,不同文件夹下就不存在这个问题,包可以看做是存放Java类的不同文件夹。
4. 基本数据类型
变量(variable)与数据类型
Java中的数据类型分为两类:
- 基本数据类型(或者称为原生数据类型)
引用数据类型
如何定义基本数据类型
如: a = 1, b, c = 2;
double pi = 3.14159;
char x = 'x';
这些在main函数中定义的变量都是局部变量,和类的成员变量不同
基本数据类型
byte 一个字节 short 两个 , int 四个, long(默认值是0L,long number1 = 50000L;)八位
byte数据类型是8位、有符号整数;有符号指的是有正数和负数之分- 最小值是
-128(-2^7) - 最大值是
127(2^7-1)
默认值是0
整型变量默认为int类型。
float
float数据类型是单精度、32位的浮点数float在储存大型浮点数组的时候可节省内存空间- 默认值是
0.0f - 浮点数不能用来表示精确的值,如货币
float f1 = 123.f;
float f2 = 456.f;
double
double数据类型是双精度、64位的浮点数- 浮点数的默认类型为
double类型如:float c = 1.23; // 编译错误 - 默认值是
0.0d - double类型同样不能表示精确的值,如货币
示例:
double number1 = 3333.4;
boolen值默认值是false
char
char类型是一个单一的16位Unicode字符- 最小值是
'\u0000'(即为0) - 最大值是
'\uffff'(即为65,535) - 默认值是
'\u0000'(即为0) char数据类型可以储存任何字符
整数的不同进制
byte、short、int和long都可以用十进制、二进制、八进制以及十六进制的方式来表示。当使用常量字面量时,前缀0b表示二进制,0表示八进制,而前缀0x代表十六进制。比如:
int decimal = 174;
int binary = 0b10101110;
int octal = 0256;
int hexa = 0xAE;
基本类型之间的自动转换关系如下:

包装类
| 基本类型 | 包装类 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
每种基本类型所占用的内存空间大小,最大值和最小值,可以通过其包装类来访问。比如为了我们可以这样访问int类型的相关信息:
System.out.println("int类型的二进制位数:" + Integer.SIZE);
System.out.println("int类型的最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("int类型的最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
以Integer和int为例,我们可以将两者进行转换,例如:
Integer in = new Integer(100); // 将int转换为包装类
int m = in.intValue(); // 获取Integer的int值
String s = “123”;
int n = Integer.parseInt(s); // 将字符串转换为整数 这里的s 只能是“123”不能是“aaa” 否则转换会有异常
String s2 = Integer.toString(n); // 将整数转换为字符串
数组(一个数组一旦创建后,它的长度是固定的)
int[] anArray;
anArray = new int[10];//初始化一个长度为10的整形数组,然后再依次往里边赋值
int[] anArray = { 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};//这种赋值更简便
String(字符串:Java语言将字符串作为String类型的对象进行处理。)
字符串可以通过+和+=操作符进行拼接,比如:
String str1 = "abc";
String str2 = str1 + "def";
str1 += "def";
String类的实例是一个不可变的对象,意味着对String的操作都会产生一个新的String对象。
例如,String有一个substring()方法
String str = "123456";
str.substring(3); // 从下标3(注意下标从0开始)开始截取一个子字符串
System.out.println(str); // str本身不可变,所以打印出来依然是123456
String str2 = str.substring(3); // 将产生的新对象赋值给一个新的引用变量
System.out.println(str2); // str2的内容为456
获取控制台输入
我们已经知道如何向控制台输出信息,那么如何从控制台获取输入呢?
为了获取控制台输入,首先需要一个创建一个Scanner对象:
Scanner scanner = new Scanner(System.in);
Scanner对象可以读取用户在命令行输入的各种数据类型,比如:
- 通过
nextInt()方法读取整数 - 通过
nextFloat()方法读取浮点数
其它基本数据类型的读取是类似的,调用对应的方法即可。
Scanner对象也可以读取用户输入的字符串:
- 通过
next()方法读取一个字符串 - 通过
nextLine()读取完整的一行,即用户输入回车键之前的所有输入信息(不包括回车键),以String返回
下面的代码,从控制台读入一个整数,然后打印:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int number = scan.nextInt(); //也可以 String number = scan.nextLine(); 这样可以输入随意字符或者数字并会打出
System.out.println(number);
scan.close();
}
}
import
注意上面的代码中有一行:
import java.util.Scanner;
Java平台提供了很多方便我们编程的类,通常称之为类库(lib),也称之为应用编程接口(Application Programming Interface, API)。比如Scanner就是Java平台为我们提供的用于获取控制台输入的类,使用时要进行相应的import。
此前,我们已经在面向对象基础的课程中了解了package的概念。
不仅仅是使用Java平台提供的类需要import,任何一个package中的类,如果需要访问另外一个package中的类,就需要import。
当然,import也不是强制的,如果不是用import,那么在代码中就需要使用包含包名在内的类全名,比如:
java.util.Scanner scan = new java.util.Scanner(System.in);
显然使用import的代码会更加简洁。
提示
除了逐个类的引入之外,也可以用通配符一次性将某个包内的所有类一起引入,例如:
import java.util.*;
表示将java.util包下的所有类都引入进来。
浙公网安备 33010602011771号