Java语言基础

Java

编译与解释并存的语言

数据类型*

基本要素

  • 数据的性质(数据结构)
  • 数据的取值范围(字节大小)
  • 数据的存贮方式
  • 参与的运算

变量的的属性

  • 名字
  • 类型
  • 值(使用前必须确定下来)
  • 地址

分类

基本数据类型:由程序设计语言系统所定义、不可再划分的数据类型。所占内存大小是固定的。在内存中存放的数据值本身。
(一个字节有8位)

  • 整型:byte short int long
  • 浮点型:float(单精度浮点 f/F) double(双精度浮点 默认)
  • 逻辑型/布尔型:boolean (只有true”真“和false”假“两个取值) 默认为false
  • 字符型 : char ‘ ’
    用来存储单个字符 (有且仅有一个,即为空也会出现错误)
    在内存占2个字节 采取Unicode编码(ASCII码(256字符)+GB2312国标码(汉字))
    字符型数据可以转换为整型(因为它的编码值是整数)
    默认值:‘\u0000’
    Unicode字符采用\u0000----\uFFFF之间的十六进制表示
    Unicode字符表的前128个刚好是ASCII表
    在这里插入图片描述

引用数据类型(复合数据类型):在内存存放是指向该数据的地址,不是数据值的本身
例如: 类 数组 接口

关键字与标识符

关键字/保留字
标识符命名规则:

  • 由字母、数字、下划线、美元符号$组合而成
  • 必须以字母、下划线或美元符号开头,不能以数字开头
  • 关键字不能当标识符使用
  • 区分大小写
    编码习惯:类名首字母大写,变量、方法及对象首字母小写

常量与变量

常量 :
整型常量(八进制、十六进制、十进制长整型后需要加I或者L)、浮点型常量(单精度加F或者f,双精度加D或者d或者省略)、布尔型常量、字符型常量(单引号)、字符串型常量(双引号)

常量的声明:final

  final int a = 10;

变量:
变量的声明、初始化、赋值

java语言的可以随时定义变量,不必集中在执行语句前

int i , j = 10// i还未赋值,j已初始化赋值
i = 2;  // i 初始化
float f ;  //同样。f并未赋值初始化
f = 3.6f ;

数据类型的转换**

数值型不同类型数据的转换

  • 自动类型转换 (安全的转换)
    1. 转换前的数据类型与转换后的数据类型兼容(从数据范围小→数据范围大的 )
    2. 转换后的数据类型的表示范围比转换前的类型大
    第2点同时说明:不同的数据类型在进行运算的式,需要转换为同一类型的再进行运算。
    (byte ->short -> char -> int -> long -> float -> double)

  • 强制类型转换 (不安全的转换)
    将较长的数据类型转换成较短的数据,且强制类型转换无四舍五入
    格式:(欲转换的数据类型)变量名
    (int) 4.6 = 4,

//数据类型的自动转换
public class DataType_Conversion {
	public static void main(String[] args) {
		int a = 155;
		float b =21.0f;
		System.out.println("a/b="+(a/b)); //a是整型,b是浮点型,两者相处,结果为浮点型a/b=7.3809524
	}
}
//整型与浮点型的转换
       int a = 155;
		int b = 9;
		float g,h,k;
		g = a/b;//a、b都是整型,两者相除的结果为整型,g为浮点型,所以得出的结果再次转换为浮点型,是安全的转换    1、g=a/b   2、(flaot)(g)
		System.out.println("a/b="+g);//a/b=17.0   
		h = (float)a/b;  //1. (float)a   2.a/b  显示结果(float)a/b = 17.222221
		k = (float)(a/b);  //1.a/b  2.flaot(a/b)  显示结果 (flaot)(a/b) = 17.0
		System.out.println("(int)h="+(int)h);  // 显示结果(int)h=17	

字符串型数据与数值型数据相互转换

  • 字符串转换成数值型数据
    "3.2" != 3.2
    前面一个为字符串 ,后面为int型。两者的Unicode编码也不同。
String str = "123.45";
float f = Float.parseFloat(str);

把()里面的String变量型转换为float型。

|转换方法 |功能说明 |
|–Byte.parseByte(String s)|将数字字符串转换为字节型数据–|
|–Short.parseShort(String s) | 将数字字符串转换为字节型数据-- |
|–Integer .parseInt(String s)| 将数字字符串转换为字节型数据–|
|–Float.parseFlaot(String s)|将数字字符串转换为浮点型数据–|
|–Double.parseDouble(String s)|将数字字符串转换为双精度型数据–|
|–Boolean.parseBoolean(String s)|将数字字符串转换为布尔型数据–|

-数值型数据转换为字符串
字符串可以用“+”来实现连接操作
原理:与字符串相加时,如果某个操作数不是字符串,就会将自动转换为字符串,在进行相加的操作。

int a =1234;
String str =""+a;  //将整型数据转换成了字符串

由键盘输入数据

由键盘输入的数据,Java都视为字符串。,因此由键盘输入数字需经过转换。

- 输入流(Java与输入流输出流有关的都要做异常处理机制)
输入数据的格式是基本固定的,可以改变是变量名,如inp
第一种


import java.io.*;
public class class_name  //类名称
{
	public static void main(String[] args) throws IOException  //凡是输入流与输出流都做异常处理机制
	{
		......
		String str;
		InputStreamReader inp;   //创建InputStreamReader的对象 输入流
		inp =new InputStreamReader(System.in)//用new的方式给inp分配内存
		BufferedReader buf;  //创建BufferedReader的对象 输入流
		buf = new ButfferedReader(inp); //表示buf的值来自inp
		......
		str = buf.readLine();//从缓冲区读取数据(读取一行字符串)
		char c = (char)buf.read(); //从缓冲区读取一个字符的字符串,即可以获得一个字符
		......
	}

}

第二种
较第一种相比,节省一个变量

package cho3_language;
//从键盘输入数据
import java.io.*;
public class Input_1 {
	public static void main(String[] args)throws IOException {
		BufferedReader buf;  //创建BufferedReader的对象 输入流
		String str;//用来接收输入的字符串
		char ch;//用来接收一个字符
		buf = new BufferedReader(new InputStreamReader(System.in));//表示buf的值来自键盘输入
		System.out.println("请输入字符串");
		str = buf.readLine();//从缓冲区读取数据(读取一行字符串)
		System.out.println("请输入一个字符");
		ch = (char)buf.read();//从缓冲区读取一个字符的字符串,即可以获得一个字符
		System.out.println("输入的字符串是"+str);
		System.out.println("输入的一个字符是"+ch);
	}

}
//从键盘输入数字、然后将其转换成数值型数据
		float num;
		String str;
		BufferedReader bu;
		bu = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("请输入一个实数");
		str = bu.readLine();
		num = Float.parseFloat(str);
		System.out.println("输入的实数是:"+num);
		
//显示结果
请输入一个实数
54
输入的实数是:54.0
		

- Scanner类
专门用于输入的类。出处 import java.util.Scanner;


//利用Scanner类从键盘出入多个数据
import java.util.Scanner;
public class Input_2 {

	public static void main(String[] args) {
		int num1;
		double num2;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个数据");
		num1 = sc.nextInt();
		System.out.println("请输入第二个数据");
		num2 = sc.nextDouble();
		System.out.println("第一个数是:"+num1+"  第二个数据是:"+num2);

	}

}
//显示结果
请输入第一个数据
45
请输入第二个数据
64
第一个数是:45  第二个数据是:64.0
     Scanner类的常用方法

nextByte() 将输入信息的下一个标记扫描为一个字节
nextInt() 将输入信息的下一个标记扫描为一个整型t
nextLong() 将输入信息的下一个标记扫描为一个Long
nextShort() 将输入信息的下一个标记扫描为一个Short
nextBoolean() 将输入信息的下一个标记扫描为一个boolean
nextDouble() 将输入信息的下一个标记扫描为一个double
nextFloat() 将输入信息的下一个标记扫描为一个float
nextLine() 返回键盘输入的一行字符串,包括空格,即返回enter前的所以字符
next() 返回键盘输入的一个字符,去掉有效字符前遇到的空格、Tab键和enter键
hasNext() 判断用户输入的是否是相对应的数据

package cho3_language;
//利用hasNextXXX()和nextXXX()方法的配合使用来完成键盘的输入
//用户在键盘上输入若干个数,每输入一个数按Enter键或者Tab键或者空格键确认,最后在键盘上输入一个i非数字字符串结束整个输入操作过程。
//计算这些数字的和
import java.util.Scanner;
public class Input_3 {

	public static void main(String[] args) {
		double sum = 0; //求和
		int n= 0;
		System.out.println("开始操作:请输入多个数,每输入一个数后按enter键或者tab键或者空格键确认,");
		System.out.println("结束操作:输入一个非数字的字符");
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextDouble()) { //判断是否为double类型 输入整型也可,因为整型可以自动转换为double类型
			double s = sc.nextDouble();
			sum = sum+s;
			n++;//计数器
		}
		System.out.println("一共输入了"+n+"个数字,其和为"+sum);
	}

}

运算符与表达式

(详情见下一篇)
算法运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
条件运算符
分量运算符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值