java初识(数据类型和运算符)

本文介绍了Java的基础特性,如一次编译到处运行的生态,类和方法的命名规则,以及如何通过javac和java命令运行Java程序。详细讲解了数据类型(包括基本类型如int、long、float,以及引用类型如String)、运算符(算术、关系、逻辑等)、变量声明和类型转换。还涵盖了字符串操作、常量和整型提升等内容。
摘要由CSDN通过智能技术生成

一、java特点

一次编译,处处运行,生态齐全。
注意:
(1)一个java文件中,只能有一个public的类;
(2)类名需要和文件名相同;
(3)编程规范建议:左括号时紧跟着当前行的;
(4)类名一定要采用大驼峰的形式命名;
(5)文件名不能为中文或者数字
(6)main方法的public static一定要有

二、如何运行一个Java程序?

在cmd控制台中进入要编译运行的java程序所在路径,使用javac 文件名.java编译生成文件名.class程序(字节码文件或者二进制文件),使用java 文件名进行运行,其中javac和java都属于jdk命令,其中字节码文件是加载到JVM中运行。
jdk:java开发工具
JVM:java虚拟机
jdk包含jre(jre包含JVM)
注意:
(1)字节码文件:一个类对应一个字节码文件,方便随用随取,用到哪个类,就加载哪个类。
(2)windows创建一个文本文件的时候,默认编码为utf-8格式,而javac是以GBK形式编译的,因此可以使用javac 文件名.java -encoding utf-8来编译,防止出错。
main函数

public class HelloWorld{
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

String[] args是运行时命令行参数,例如:

public class HelloWorld{
    public static void main(String[] args) {
        for(int i = 0;i<args.length;++i){
            System.out.println(args[i]);
        }
        System.out.println("HelloWorld");
    }
}

此时我们在运行时带上Daisy is cool这个参数,会将这个字符串放到args数组中。
在这里插入图片描述

三、数据类型与运算符

1、变量八大基本数据类型

(1)整型类型
int:在java中,一个int类型的变量占4个字节,与操作系统没有直接关系,java中没有无符号类型。它的数据范围为-2^31—>2 ^31-1。
Integer为int的包装类,例如实现代码:

        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE+1);
        System.out.println(Integer.MIN_VALUE-1);

结果为:
在这里插入图片描述
也就是说,int的取值范围如图:
在这里插入图片描述
后面的数据类型都可以以这种形式表示。
注意:在java中,如果一个局部变量没有进行初始化,就不能使用它,java中没有全局变量。
(2)长整型类型long
例如:

 long num = 10L;
 System.out.println(num);

java中long类型占8个字节,表示的数据范围为-2^63—>2 ^63-1,它的包装类为Long,使用以下代码查看它的最大值和最小值:

System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);

结果为:
在这里插入图片描述
(3)双精度浮点类型double
占8个字节,包装类为Double,例如:

double a = 12.5;
System.out.println(a);
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);

结果为:
在这里插入图片描述
注意:
如果实现代码:
在这里插入图片描述
结果并不是1.21,而是1.2100000000000002,这是因为Java中浮点数的内存布局和整数有很大差别,不能单纯用2^n表示数据范围。
(4)单精度浮点类型float
float在java中占4个字节,例如float num=1.0f;在Java中不允许把一个double类型的值直接赋值给float。一般在项目中建议使用double。
(5)字符类型变量char
它的包装类为Character,一个字符占用两个字节,表示的字符种类更多,包括中文(2个字节),在C语言中使用ASCII表示字符,在java中使用Unicode表示,使用一个字符表示中文时,记得编译时加上-encoding utf-8;
(6)字节类型byte
byte为一个字节大小,数据范围为-128—>127,注意:

byte a = 128;

这种会编译错误,因为byte的最大值为127,超过最大值就会报错,又例如:

System.out.println(Byte.MAX_VALUE+1);

按理上来说结果应该是-128,但是结果却是128,这是因为byte默认以整型进行打印,也就是看不到-128,而是128。
注意:
byte的变量最多只能是MAX_VALUE,定义时一定不要超过范围。
(7)短整型变量short
占2个字节,一般不推荐使用。
(8)布尔类型变量boolean
这个没有明确大小,在java中,boolean类型只有true和false;两种取值,和int类型不能相互转换,不存在1表示true,0表示false。它的包装类为Boolean。

2、引用数据类型(这里先介绍字符串数据类型)

(1)字符串类型String
在C语言中是没有字符串类型的,但是在java中是存在String这种类型的,可以用它来定义字符串,例如:

 String str = "hhh";
 System.out.println(str.length());

字符串的+操作表示字符串拼接,例如:

String str1 = "Hello";
String str2 = "World";
System.out.println(str1+str2);

结果为HelloWorld,也可以:

String str = "result=";
int a = 10;
int b = 20;
System.out.println(str+a+b);

结果为result=1020

3、常量

(1)字面值常量,例如10、“abc”、1.0、010(八进制)等。
(2)final修饰的变量(一般用大写表示)
例如final int MAXNUM = 10;变量只能被初始化一次,使用时记得初始化。

4、整型提升

小于4个字节的类型参与运算时,会先提升为整型,例如:

byte b = 10;
byte c = 20;
byte d = b+c;

编译时就会报错,因为b被提升为整型,c也被提升为整型,把整型int的数据赋给byte就会报错,解决方法就是改为int d = b+c或者byte d = (byte)(b+c);

5、类型转换

隐式类型转换:把一个小类型数据给大类型;
显式类型转换:把一个大类型数据给小类型要进行强转。
注意:
int和boolean是毫不相干的两种类型,不能相互赋值。
int和String类型之间的转换
(1)int—>String
例如:

int num = 10;
//方法1
String str1 = num+"";
//方法2
String str2 = String.valueOf(num);

(2)String—>int
例如:

String str = "100";
int num = Integer.parseInt(str);

但是如果str为"100a"就会出现异常,因为参数不对。

6、运算符

(1)算术运算符,也就是四则运算,这里着重说一下除法
a、int/int,结果为int,例如:

int a = 1;
int b = 2;
System.out.println(a/b);

结果为0,需要使用double来计算
例如5/2为2,5.0/2为2.5,(float)5/2为2.5,(float)(5/2)为2.0;
b、0不能作为除数
c、%表示取余,不仅仅可以对int取余,也能对double求模,例如:
10%3为1,-10%3为-1,10%-3为1,-10%-3为-1.
+=、-=、/=、*=、%=都为增量赋值运算符
++、–为自增自减运算符,运算符规则和C语言一样分为前置和后置,注意:
在这里插入图片描述
这种情况在C语言中按理上结果为11,但是在java中结果为10,这是一种特殊情况。

(2)关系运算符
有:==、!=、>、<、>=、<=;
关系运算符的返回值都是boolean类型。
(3)逻辑运算符
&&、||、!(逻辑与、逻辑或、逻辑非)
在Java中,逻辑非只能作用在boolean类型上。
逻辑运算符的操作数(一般是关系运算符的结果)和返回值都是boolean类型。
短路求值:
逻辑与和逻辑或都遵循短路求值的规则,也就是:
对于逻辑与,如果左侧表达式值为false,则表达式整体的值一定是false,无需计算右侧表达式;
对于逻辑或,如果左侧表达式值为true,则表达式整体的值一定是true,无需计算右侧表达式;
(4)位运算符
&、|、~、^(按位与、按位或、按位取反、按位异或)
(5)移位运算符
<<、>>、>>>(左移、右移、无符号右移)
左移就是最左侧符号位不要了,右侧补0;
右移就是最右侧位不要了,左侧补符号位;
无符号右移就是最右侧位不要了,左侧补0;
(6)条件运算符
三目运算符
表达式1 ? 表达式2:表达式3,如果表达式1为true,则结果为表达式2,否则为表达式3;

Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、中小企业板、创业板、科创板等)数据整理计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值