java学习记录(二):java的基本类别数据结构与运算

本文详细讲解了Java编程的基础知识,包括程序结构、变量与数据类型、运算符、字符串处理及引用类型的概念。适合初学者和有C语言背景的学习者。

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

前言

本课讲述知识点主要为:

  1. java程序的基本结构
  2. 变量和数据类型
  3. 整数、浮点数、布尔运算
  4. 字符与字符串

有C语言基础对于这部分内容就很好理解

java程序基本结构

一个完整的java入口程序通常是表现为一个类的形式如下
e.g.:

public class m_hellow {	
	
	public static void main(String ards[])
	{
		System.out.println("Hello,Bao");
		//第一条语句
		System.out.println("second,line");
		//第二条语句
	}
}

必须有且仅有一个 公开,静态,返回值为空,方法名为main并且输入参数为的方法
java的编码格式相对是宽松的但是必须遵守基本的编程规则,并且尽量遵守规范的编程格式(eclipse默认的格式就是规范的格式)

类,class,作为java面向对象语言的一个重要载体,其命名规则如下:

  1. 可以并仅由字母、数字和下划线组成
  2. 必须由字母作为命名的开头
  3. 并且应当遵从公认的命名规则

(例子中的命名就是不太规范的命名可以修改为 Myhellow)

方法

方法由:修饰部分返回值方法名输入)组成排列方式如下:
publicstatic就是修饰部分表示公开和静态
void表示返回值为空
main为方法名
String 表示输入类型,ards表示输入的变量名
关于修饰部分有4种修饰符:
public、private、(无)、protected
其中最常用的就是public和private
public所有类可以访问,可以被类内部、子类、本包、外部包使用
private:仅类内部可以访问
其次是(无)、protected
(无):仅类内部和本包可以访问
protected不可被外部包访问

语句

语句是程序真正执行的部分,以分号结束
例如:System.out.println("Hello,Bao");

注释

注释程序不执行编译的部分,其存在的意义主要是方便编程理解
有3种注释语法
例如:

/**
 * 
 * @author Administrator
 * 第三类注释
 */
public class m_hellow {
	/*
	 * 第二类注释
	 * */
	
	public static void main(String ards[])
	{
		//第一类注释
		System.out.println("Hello,Bao");
		//第一条语句
		System.out.println("second,line");
		//第二条语句
		
	}
}
  • 第一类注释为单行注释,从双斜线开始,到回车结束
  • 第二类注释为多行注释,从斜线星号开始到星号斜线结束
  • 第三类注释为特殊的多行注释,从斜线两颗星号开始,到星号斜线结束,这种注释用于生成文档注释,通常输入方法为输入/**后键入回车,eclipse就会自动的帮助创建文档注释

变量和数据类型

变量就是数值的载体,在java中变量和方法是类似的,接受修饰符的修饰
例如:public static int a=100;

变量可以持有某一个类型的数值
例如int a=1;
也可以指向某一个对象
String a =“123_abc”;
变量必须先定义后使用,其定义方法为
变量类型 变量名 = 初始值;
变量的特征为可以进行赋值并且可以重新赋值
字符串变量是一种特殊变量,对于字符串变量的赋值和运算是一种特殊的计算方式。

变量的存储单元

计算机内存的最小存储单元是字节,一个字节是8位的二进制数或者是2位16进制数
存储的数值可以为0~0xff
1B=1Byte=8b
1KB=1024B
1MB=1024KB

以此类推

常见的数据类型为

  • byte:1个字节
  • short:2个字节
  • int:4个字节
  • long:8个字节
  • float:4个字节(浮点数)
  • double:8个字节(浮点数)
  • char :2个字节(字符类型)
  • boolean :1或者4个字节(布尔类型)//较为特殊,不建议记忆

整形变量

整形变量共有4种:byte、short、int、long

byte a1 =127 ; 	//数据长度为一个字节 -128~127
byte a2 =-128 ; //-0x80~0x7f
short b1= 32767;//数据长度为2个字节-32768~32767
short b2=-32768;//-0x8000~0x7fff
int	c1= 2147483647;//数据长度为4个字节-2147483648~2147483647
int	c2= -2147483648;//-0x80000000~0x7ffffffff
long d1= 9223372036854775807L; //数据长度为8个字节
long d2= -9223372036854775808L;

知识点

  • 整形long需要在结尾加一个L(建议使用大写L,因为小写会和数字1搞混)
  • 不同表达形式的数数值是一样的,比如127和0x7f就是相等的。
    127=0x7f=0b01111111
  • 16进制的整形需要用0x开头
  • 2进制整形需要用0b开头
  • 整形可以在定义的过程中加入下划线,下户线不影响数值但是不能放在头部和尾部前。
    例如:
    int a =1_11;//_11和111_是不合法的
    下划线功能用于方便计数整形的位数例如:
    int a =2_000_000_000;

浮点变量

浮点变量共有2种:float、double

float f =1.123f; //32位,4字节
double d =1.1234;//64位,8字节

浮点变量可以被表示为科学计数法
科学计数法:
double d2 =1.1234e2;//这个数值等于112.34

布尔变量

布尔变量:boolean
布尔变量只有2个值

boolean t =true;	//真
boolean f =false;	//假
boolean test = 5<6; //通常应用于逻辑判断语句中

字符类型

字符类型:char
char c1 = ‘a’; //字符a
char c2 = ‘&’; //字符&
字符类型只能输入一个字符。
(下文的字符和字符串会重新讲述)

修饰符

变量前修饰符支持和方法相同的修饰符,并且支持一个特殊的修饰符:final
如果在变量命前用final修饰则这个定义的变量就为常量不可修改,一般要求常量命名为大写用于做区分
例如:final double PI = 3.141596;

整数、浮点数、布尔运算

整数运算

  • 整数运算的结果只为整数
  • 整数运算结果永远精确
  • 运算过程中会自动提升位数
  • 由于运算结果溢出不报错因此需要选择合适范围的整形(ing,long)

基础运算符

加减乘
a=1+1; //运算得a=2
a=1-1; //运算得a=0
a=2*2; //运算得a=4

除法运算符

//取整取余
a=7/3; //运算得a=2
a=7%3 //运算得a=1
原理为
7/3=2……1

自加减运算符

  • +和- -,用法和C语言相同
  • ‘+ +’:自己+1 ,单独使用时 a++和++a相同等价于a=a+1,参与运算时a++特殊为先参与运算进行a=a+1的运算。
  • ‘- -’:自己-1 ,单独使用时 a–和--a相同等价于a=a-1,参与运算时a–特殊为先参与运算进行a=a-1的运算。

位移运算

位移运算分为左移,带符号右移,不带符号右移三种

	int a = 0b0000_1000_1000_0001;//数值为0x881
//左移:,<<
	int b=a<<8; //此时B的数值为0b1000_0001_0000_0000=-0x8100
//带符号右移:
	int c=b>>8; //此时c的数值为0b1000_0000_1000_0001=-0x8081
//不带符号右移
	int c2=b>>>8; //此时c2的数值为0b0000_0000_1000_0000=-0x0081

对于位移运算如果移动的位数到了空的地方会被抛弃。如果符号位有数据则右移运算有2种形式

位运算

应用运算符&和或运算符|

int a= 0b0000_1010
int b=0b1001_1001
int c=a|b;//此时c的数值为0b1001_1011
int d=a&b;//此时d的数值为0b0000_1000
int e=a^b;//此时e的数值为0b1001_0011
int f=~b;//此时f的数值为0b0110_0110

其运算是每一位对齐进行运算,将结果生成在对应位上。

  • &:都为1则为1,否则为0
  • |:都为0则为0,否则为1;
  • ^:不相同为1,否则为0
  • ~:1变0,0变1

浮点数运算

特征:浮点数往往不能不能精确表示
(由于浮点数是二进制表示小数除法,因此对于不能转换的数不能精确表示,例如0.1)
运算规则:运算时候会自动把非浮点数(整形)转为浮点型运算最后保存为浮点数
(不提升型号的运算类型,整形相互运算)
浮点数的特殊运算:

double d1 =0.0/0; //NaN 不报错显示为not a number 
double d2 =1.0/0; //Infinity 无穷大
double d3 =-1.0/0; //-Infinity 无穷小

强制转型:

  1. 浮点转换为整形时会直接丢失小数部分,因此如果需要4舍5入需要在转型前加入0.5:(int)(1.7+0.5);//值为2 ;(int)1.7 ;//值为1.
  2. 当浮点数大小超过整形最大值时,强制转型会自动转成整形的最大值

布尔运算

布尔运算的运算结果为布尔型,当满足运算条件时输出为真,否则为假

数值判断运算符:

  • ‘>’:大于
  • ‘>=’ :大于等于
  • ‘<’:小于
  • ‘<=’:小于等于
  • ‘==’:相等
  • ‘!=’:不相等

短路运算符:

  • &&:都为真时为真,否则为假(当前方运算符判断为假时会跳过后面的运算内容
  • ||:都为假时为假,否则为真(当前方运算符判断为真时会跳过后面的运算内容

三元运算符

a?b:c;//根据a语句运算的真值与否决定运行b语句还是c语句,当a为true时运行b否则运行c;
注意:b语句和c语句运算的类型必须相同

字符类型与字符串类型

字符类型

char是character的简写
char 保存一个字符 用单引号表示,例如 char c = ‘a’;
char 保存的字符编码是Unicode,因此可以通过把char型赋值为int来查看其编码,同样可以用编码方式来声明字符例如:char c = ‘\u0041’;//此时保存的字符为字符 ‘A’此处的0041是一个16进制数;

字符串类型

字符串类型不是基本类型,是一个引用类型
String 表示一个字符串,用双引号表示,例如Sting s = “abc”; //包含3个字符
转意符号:\
常用转意符号组:’\n’,’\r’,’\”’,’\t’,’\\'
\\的用法:表示字符\而不是转移符号,例如:当想要表示\n字符而不是字符组含义时写法为\n。

引用类型

这种类型在声明的时候会在内存开辟2个空间,一个是其自身的空间,另一个是其指向的空间,
当对其直接赋值的时候并不是对其的内容进行赋值,而是将其重新定向到另一个空间上例如:

String a = "112";
String b = "456";
a=b;
b="985";

此时a就指向了”456”所在的空间,b指向了 ”985”的空间。
但是如果是

String a = "112";
String b = "456";
a=b;
b.setCharAt(0,'3');

此时 a和b都指向同一个地址,并且地址内的值是 “356”,因为此时是对于空间内部数值的修改而不是对于指向的修改
另外引用类型可以指向一个特殊类型:Null,表示为空
空值(Null)的含义不等于与空字符串””

结语

本课学习完毕,其实这些基础知识对于我们这类程序员来说应该是完美掌握的,最多是细节缺少一些,因此没有必要死记硬背,学会运用就好。
加油学习(๑╹◡╹)ノ"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值