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数据类型可以储存任何字符

 整数的不同进制

byteshortintlong都可以用十进制、二进制、八进制以及十六进制的方式来表示。当使用常量字面量时,前缀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); 

Integerint为例,我们可以将两者进行转换,例如:

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包下的所有类都引入进来。


 

posted on 2018-01-24 23:53  婴儿学步  阅读(209)  评论(0)    收藏  举报