java_语言基础
java 的语言特点
1、面向对象
2、简单
3、跨平台
类的阐述
1、public修饰的类称之为公开类,要求类名必须与文件名称完全相同,包括大小写
2、一个源文件只能有一个公开类
3、一个类中只能有一个主函数,每个类都可以有自己的主函数
4、同一个源文件中可以定义多个类
5、编译后,每个类都会生成独立的.class文件
文档注释
/* 文档注释 / 生成外部文档:javadoc -d . HelloWorld.java
变量的概念
概念:计算机内存中的一块存储空间,是存储数据的基本单元
Java是强类型语言,变量类型必须与数据类型一致
int为整数的默认类型,如需为long类型赋值,需要在值得后面追加 “L”
double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加 “F”
类型转换
自动类型转换
两种类型互相兼容
目标类型大于元类型
short s = 123;
int i = s; //自动转换成功,编译通过
强制类型转换
两种类型互相兼容
目标类型小于源类型
short s = 123;
byte b = (byte)s; //可能损失精度
强制类型转换规则:
//整数长度足够,数据完整
int i = 100;
byte b = (byte)i; //b = 100
//整数长度不够,数据截断
int i = 10000;
byte b = (byte)i; //b = 16
//小数强转整数,数据截断(小数位舍掉)
//字符整数互转,数据完整
char c = 65;
int i = c; //i = 65;
//boolean类型不可与其他类型转换
自动类型提升(进行算数运算时,结果向取值范围大的类型转换)
任何类型的数据与string类型的数据相加(+),实为拼接,其结果自动提升为string
在没有int的情况下,若均为short或byte,结果自动提升为int类型
运算符
&& 与
|| 或
三元运算符 ?:
语义:布尔表达式?结果1:结果2
当表达式结果为真,获得结果1;当表达式结果为假,获得结果2
控制台输入
1、导入java.util.Scanner
2、声明Scanner类型的变量
3、使用Scanner类中对应的函数(区分类型)
.nextInt(); //获得整数
.nextDouble(); //获得小数
.next(); //获取字符串
.next().charAt(0); //获取单个字符
.nextLine(); //获取一行字符
命令提示符java带包编译
package cn.com.baizhi.class118.group8.jsk;
public class HelloWorld {
public static void main(String[] args) {
// long l;
System.out.print((Long.MAX_VALUE));
}
}
javac -d . Helloworld.java
补充
进制表示
int type2 = 0b10;
System.out.println(type2); //二进制 前面追加 0b
int type8 = 010;
System.out.println(type8); //八进制 前面追加 0
int type16 = 0x10;
System.out.println(type16); //十六进制 前面追加 0x
/*char 类型以16进制赋值方式*/
char c = '\u0041'; //c的结果为字母 A
double 转换到 int ,小数位为16位进位(16个9)
double d = 1.9999999999999999; //小数点后有16个9
System.out.println(d); //d的结果为2.0
数字和字符相加
//结果为82,30+'4','4'的ASCll码为52,30+52=82
System.out.println(10+20+'4');
/*只有String类型的字符串和‘+’相接,代表字符串的拼接,所以这里的‘+’表示正常的相加*/
基本数据类型 字节 备注
byte 1
short 2
int 4
long 8
char 2
float 4
double 8
boolean 1 描述状态只占1位;(总8位)
进制类型 备注
二进制 0b
八进制 0
十进制 无开头
十六进制 0x
char类型以十六进制赋值 char c = ‘\u0041’; c结果是字母A
运算符
n = n + 1; //存在自动类型提升
n += 100; //在有限的位数内,完成循环自增(参看下图)
用户聊天
补充
Scanner类中的方法:
1、判断输入的是否是Int类型:input.hasNextInt()
2、判断输入的是否是小数:input.hasNextFloat()
3、判断输入是否还有输入:input.hasNextLine()