java基础—2.java基础知识

本文深入讲解Java的基础知识,包括数据类型及其转换、包装类、运算符、流程控制、函数、数组等内容。适合初学者和需要巩固基础知识的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、概述

	java基础部分与其它语言(C/C++等)一致,基础都包含的是数据类型、运算符、流程控制、变量与常量、函数、数组。

二、数据类型及基本数据类型转换

	java中有8种基本数据类型,3种引用数据类型,其中默认的数据类型是:整数—int ,小数—double,数据类型如下图所示:
|--自动类型转换

自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。 byte b; int i=b; long l=b; float f=b; double d=b;

注意:short s1 = 1; s1 += 1; (1)这两句话都没错, e1+=e2    实际上是    e1=(T1)(e1+e2) (2)short sh = b;这里在赋值时,JVM 首先将 b 的值转换为 short 类型,然后再赋值给 sh 基本数据类型的强转次序如下:

|--强制类型转换
	强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。
		int i=99 ;
		byte b=(byte)i;
		char c=(char)i;

三、数据类型的包装类

	包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,大量使用这些包装类。Java共有六个包装类,分别是Boolean、 Character、 Integer、 Long、 Float和Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。	      在进行简单数据类型之间的转换(自动转换或强制转换)时,可以利用包装类进行中间过渡。
	注:而String和Date本身就是类。所以也就不存在什么包装类的概念了。所有的包装类都方法都大致相同,以Integer类为例。
		|--生成Integer类
			|--构造方法
				Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
				Integer(String s)  构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int值。
			|--静态方法
				static Integer valueOf(int i)  
				static Integer valueOf(String s)    不带系统属性值
				static Integer getInteger(String nm)  带系统属性值
		|--常用方法
			|--进制转换:注意返回值是String,这些方法也是静态的
				static String toBinaryString(int i)   二进制
				static String toHexString(int i)        十六进制
				static String toOctalString(int i)     十进制
			|--字符串转int
				static int parseInt(String s)  
			|--int 转字符串
				static String toString(int i)  
				 String toString()  
			|--int转其它数据类型
				 short shortValue() 转short
				 long longValue()   转long
				 byte byteValue()  转byte
			|--比较
				compareTo(Integer anotherInteger) 

四、运算符

	运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。其中运算符的优先级顺序是:


五、流程控制

	主要有:判断结构、选择结构和循环结构。
5.1  判断结构   if_else
if(条件表达式)
{ 执行语句;}
else if (条件表达式)
{  执行语句 ; }
else
{ 执行语句;}
5.2  选择结构   switch
switch(表达式)     //表达式的值只可以是byte short int char
{
	case    取值1:
		执行语句;
		break;//注意每个case后都要有break
	case    取值2:
		执行语句;
		break;
	...
	default:        //默认的值
		执行语句;
		break;
}
5.3  循环结构 
		包含三个结构:while  do_while  for,并用break、contunue控制循环;
		|--while
while(判断)
{
	……
}
|--do_while
do
{   
	…………;//do something
}while()   
|--for
for(语句;语句;语句)
{
	……;//do something
}
|--循环控制
|--break语句:应用范围:选择结构和循环结构。其后可加标记,用于操作被标记的语句。如:break p;
|--continue语句:应用于循环结构。continue语句是结束本次循环继续下次循环。其后可加标记,用于操作被标记的语句。如:continue p;

六、函数

 函数就是定义在类中的具有特定功能的一段独立小程序,函数也称方法

|--函数的格式:
		修饰符   返回值类型  函数名(参数类型 型参1,…………)
			执行语句;
			return  返回值;  //如果返回值类型是void,return语句可以不写
|--定义函数的步骤
	定义函数要注意通用性和扩展性,尽量解决同一类问题(类的定义也是)
		1.明确功能,明确运算结果类型(返回值类型);
		2.明确需要参与运算的内容,即明确型参;
|--函数的重载
	在同一个类中,允许存在一个以上的同名函数,只要参数个数或者参数类型不同即可。注意两点:
		1.只看参数列表,与返回值无关;
		2.子类重载时,权限只能向上升级,如protect --> public 

七、变量、常量

	|--常量
		定义:Java中固定不变的、表示不能改变的数值。
		Java中常量的分类:
			(1)整数常量。所有整数。有三种表现形式:
				|--十进制:0-9,满10进1。
				|--八进制:0-7,满8进1,用0开头表示。
				|--十六进制:0-9,A-F,满16进1,用0x开头表示。
			(2)小数常量。所有小数。
			(3)布尔型常量。较为特有,只有两个数值。true false。
			(4)字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
			(5)字符串常量。将一个或者多个字符用双引号(“”)标识。
			(6)null常量。只有一个数值就是:null。
	|--变量
		概念:内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。
		作用:用来不断的存放同一类型的数据,并可以重复使用。
			定义变量的格式:数据类型 变量名 =初始化值;

八、数组

	数组是同一种类型数据的集合,数组是一个容器。数组自动从0开始编号。数组的父类是Object。可能把数组看一个类的对象,数组创建后存放在堆内存中,而变量指向了该对象的地址。如 int [] arr = { 3 , 5 , 7 ,8}   arr在栈中,指向数组的地址;
	8.1  数组的声明:
		1.元素类型[] 数组名  = new 元素类型[数组的长度];
		                int [] arr = new int [5];
		2.元素类型[] 数组名  = new 元素类型[]{元素,元素,…………}
			      int [] arr = new int [] { 3 , 5 , 1 , 7 };
			      int []  arr = { 3, 5 , 7 , 1}
	8.2  数组的遍历
		 int []  arr = { 3, 5 , 7 , 1}; 
		//方法一:for循环
		for( int i =0 ; i < arr.length ; i++ )
		{
			System.out.println(arr[i]);
		}
		//方法二:用Iterator 和 while完成,简写成高级for
		for( int a  :  arr)
		{
			System.out.println(a)
		}
	8.3  数组的工具类java.util.Arrays
		该数组中的所有方法都是static,没有构造方法,常用的方法如下:
		|--   static <T> List<T>     asList(T... a)     
				返回一个受指定数组支持的固定大小的列表。
		|--    static int binarySearch(double[] a, double key)  
				 二分法查找 key,其它类型数组一样
		|--   static byte[] copyOfRange(byte[] original, int from, int to) 
				将指定数组的指定范围复制到一个新数组。 
		|--    static boolean equals(byte[] a, byte[] a2) 
			          如果两个指定的 byte 型数组彼此相等,则返回 true。 
		|--     static String toString(boolean[] a) 
			          返回指定数组内容的字符串表示形式。 
		|--    static void sort(long[] a) 
			          对指定的 long 型数组按数字升序进行排序。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值