Java基础
java注释
// 单行注释 只注意当前这一行内容
/* 多行注释 */ 注释框起来的所有内容
/**文档注释*/ 注释的内容,在需要时可以导出作为手册
/*
public static void main(String[] args)
固定写法,表示为Java程序执行的入口(main方法)
System.out.println()
系统输出打印括号中的字符串
println 表示为打印并换行 ln(line)==\n 表示换行 print打印不换行
注意: Java中严格区分大小写
Java中严格区分中英文标点符号
Java中每一句代码的结束需要使用分号
Java编程过程中括号都要成对的出现
Java程序编写时,子结构需要缩进,要有层次感
*/
public class Hello{
public static void main(String[] args){
System.out.println("Hello World 我来了....");
}
}
Java中的变量
变量:就是一个可变的量,在Java编写代码后,运行时该变量会向内存要一块空间,用来存储一定范围的数据,该数据可以在规定范围内发生变化
注意变量的定义: 在方法中定义变量,不赋值不能使用
同一个结构中不得重复定义变量
变量只有在{}中定义才生效
变量的格式: 数据类型 变量名称 = 值;
Java的数据类型
生活中常见:字符串,数字,布尔值,Date
Java中数据类型分为两大类型: 基本数据类型,引用数据类型
基本数据类型
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
字节型 | byte | 1个字节(8位) | -128-127 |
短整型 | short | 2个字节 | -32768-32767 |
整型 | int(默认,常见) | 4字节 | -214748万 |
长整型 | long | 8字节 | -2的63次方-2的63次方-1 |
单精度小数 | float(没有使用) | 4字节 | |
双精度小数 | double(默认,常见) | 8字节 | |
字符型 | char | 2字节 | 0-65535 |
布尔型 | boolean | 1字节 | true,false |
字符型 : 用单引号引起来的一个字符,这就是字符型
字符串型: 用双引号引起来的,一个或一个以上的字符,叫做字符串类型
注意: long类型虽然定义的类型为长整型,但是数据赋值时默认是整数类型(int),想要使用long类型,需要在数据后面加上l或L
float类型定义为单精度小数,但是使用小数数据时,默认类型时double,想要使用float类型,数据后需要加上f
引用数据类型: 包括: 类(String),数组,接口
标识符:
标识符:在程序中,我们自己定义的名称叫做标识符. 如: 项目名,包名,类名,方法名,变量名(属性名)
命名规则
标识符只能以字母,_ 和 $开头
标识符中可以包含数字
标识符不得使用Java关键字和Java的保留关键字
关键字: 在Java中已经被赋予了特殊意义的字符.
保留关键字: Java现在未使用,但保留起来,将来可能被使用的字符(单词),这就是保留关键字
命名规范
命名规范:要求编写程序,命名时需要见名知意,一般采用驼峰命名法
类名规范: 每个名称的首字母大写,多个单词组成的,每个单词首字母大写
方法名和变量名: 首字母小写,多个单词组成,第二个单词及以后首字母大写
包名: 全小写
常量名: 全大写 每个单词之间使用 _ 连接
使用变量定义并输出人的信息
public class Person{
public static void main(String[] args){
String name = "zhangsan";
char sex = '男';
short age = 21;
String job = "学生";
double height = 1.75;
double weight = 75;
String phone = "12345678900";
String address = "河南省郑州市";
//变量名就代表变量的内容
//变量输出时,如果与字符串相连接需要使用+连接
System.out.println("姓名为:"+name+", 性别为:"+sex+", 年龄:"+age+" ,身高:"+height+"m, 职业:"+job+" ,手机号码:"+phone+", 籍贯:"+address);
}
}
数据类型的转换
数据类型的转型分为两种: 自动类型转换 和 强制类型转换
自动类型转换: 数据可以兼容的情况下,小的数据类型,向大的数据类型自动转换
public class VariableDemo {
//Eclipse编程过程中,工具会自动编译Java文件为class文件,但是必须保存Java文件才会自动编译
public static void main(String[] args) {
byte num1 = 125;
short num2 = 50;
int num3 = 100;
long lon = 1314555L;
float f = 1.35f;
double dou = 1.349;
char ch = '男';
//自动类型转换: 在数据可兼容的情况下,小的数据类型向大的数据类型自动转换
//byte与short类型一旦参加运算后,默认为int类型
int result1 = num1 + num2;
int charnum = ch; //字符类型可以自动转换为int类型,是通过ASCII码对应的十进制编号转换的
System.out.println("byte与short类型相加得到int类型:"+result1);
System.out.println("a对应的十进制编号为:"+charnum);
}
}
byte < short,char < int < long < float < double 转换范围从小到大
强制类型转换: 数据可兼容, 大范围的数据类型,向小范围的数据类型转换,但是在转换过程中可能损失精度,必须主动提供一个需要转换的目标类型 (类型)大范围数据
public class VariableDemo {
public static void main(String[] args) {
byte num1 = 125;
short num2 = 50;
int num3 = 100;
long lon = 131455536351814518L;
float f = 1.35f;
double dou = 1.349;
int result2 = (int) (num3 + dou); //对于运算结果的转换,一定是整个运算结果的转换
//强制类型转换:需要为其提供一个需要转换的目标类型
int num4 = (int)lon;
System.out.println("整数加上小数:"+result2);
System.out.println("长整型转换为int类型的数字:"+num4);
}
}
运算符
运算符是一种特殊的符号,用以表示数据的运算,复制或比较
运算符分为: 算术运算符 赋值运算符 比较运算符 逻辑运算符 三元运算符
算术运算符: + - * / %取余 ++ –
++ 表示为自身加1,每次使用都会加1
++在前 | 先自增后取值 | a=2;++a(这时候的值为3); 最后a的取值为3 |
---|---|---|
++在后 | 先取值再自增 | a=2; a++(这时候的值为2); 最后a的取值为3 |
–在前 | 先自减后取值 | |
–在后 | 先取值再自减 |
public class ArithmeticOperator {
public static void main(String[] args) {
int a=2,b=2; //定义两个变量,两个变量的类型都为int
System.out.println("++在前的值为:"+(++a));
System.out.println("++在后的值为:"+(b++));
//最终的结果是一样的
System.out.println("最终的结果为:"+a+" "+b);
String str = "Hello";
//代码是从上到下,从左到右执行 1.执行str+a得到字符串 2.字符串+b
System.out.println("str+a+b的结果为:"+(str+a+b)); //Hello33
System.out.println("a+str+b的结果为:"+(a+str+b)); //3Hello3
System.out.println("a+b+str的结果为:"+(a+b+str)); //6Hello
}
}
“+” 符号: 该符号在数字与数字相加时,实现的是相加的运算
该符号与任何字符串相加时,实现的是两个内容的拼接
赋值运算符: = += -= *= /= %=
+= 表示为当前变量加上右边的值,重新赋值给当前变量 如: int a= 2; a = a+2;或a += 2;
import java.util.Scanner;
public class AssignmentOperators {
public static void main(String[] args) {
//扫描器,扫描控制台输入的内容
// Scanner是扫描器类 定义了一个名字叫in 并创建出新的扫描器, System.in 控制台输入
Scanner in = new Scanner(System.in);
//在输入之前需要提示输入
System.out.println("请输入员工的名称:");
//获取到扫描器中扫描到的数据 通过扫描器的 nextXXX()方法获取到指定类型的数据 XXX为类型 next()默认获取字符串
String name = in.next();
System.out.println("请输入"+name+"的工资:");
int sal = in.nextInt(); //从扫描器中读取到一个int类型的数据
System.out.println("员工非常辛苦,加薪500元");
sal += 500; //工资加了500并重新赋值给sal
System.out.println("员工"+name+"现在的工资为:"+sal);
//关闭资源
in.close();
}
}
比较运算符 : == > < >= <= != equals比较两个字符串是否相等
用于比较两者之间的关系为true或false
public class ComparisonOperator {
public static void main(String[] args) {
int a=5,b=5,c=10;
String str="Hello";
Scanner in = new Scanner(System.in);
System.out.println("a是否大于b:"+(a>b));
System.out.println("a是否大于等于b:"+(a>=b));
System.out.println("a是否小于b:"+(a<b));
System.out.println("c是否小于等于b"+(c<=b));
System.out.println("请输入字符:");
String str1 = in.next();
System.out.println("您输入的字符与Hello相等:"+str.equals(str1));
System.out.println("您输入的字符与Hello相等:"+(str==str1)); //如果比较的是引用数据类型,那么比较的是对象地址
in.close();
}
}
逻辑运算符 : &&与 ||或 !非 &与 |或
用于连接两个表达式进行比较,得到最终结果
& :表示两边需要同时满足
| : 满足其一就为true
!: 取反
注意: 一个& 和 两个 && 的区别:
&&: 有短路的效果,当左边的条件为false的时候,直接为false,不想要判断第二个条件
&: 当左边条件为false的时候,依然要判断第二个条件,最终结果不变
一个 | 和 两个 || 的区别:
||: 有短路的效果,当左边条件为true时,直接为true,不需要判断第二个条件
|: 左边条件为true的时候,依然要判断第二个条件,最终结果不变
public class LogicalOperator {
public static void main(String[] args) {
//逻辑运算符
int a=5,b=5,c=10;
String str="Hello";
Scanner in = new Scanner(System.in);
System.out.println("a大于b并且a小于c:"+(a>b&&a<c));
System.out.println("a大于等于b并且a小于c:"+(a>=b&&a<c));
System.out.println("a小于b或者a小于c:"+(a<b||a<c));
System.out.println("c小于等于b或c大于等于a:"+(c<=b||c>=a));
System.out.println("请输入字符:");
String str1 = in.next();
System.out.println("您输入的字符与Hello相等:"+str.equals(str1));
System.out.println("您输入的字符与Hello地址不相等:"+(str!=str1)); //如果比较的是引用数据类型,那么比较的是对象地址
// System.out.println(++a<5 && b++>5);
// System.out.println("a的结果为:"+a+", b的结果为:"+b);
System.out.println(++a<5 & ++b>5);
System.out.println("a的结果为:"+a+", b的结果为:"+b);
in.close();
}
}
三元运算符
是一种简单判断结构的运算符,并最终返回一个指定类型的数据
格式: 数据类型 变量名 = 条件表达式 ? true执行结果 : false执行结果;
条件表达式: 会得到true和false的结果
true的结果: 当条件表达式为true的时候执行,其中可以是一个表达式
false的结果: 当条件表达式为false的时候执行,其中可以是一个表达式
注意:两个结果返回的数据类型要保持一致
public class SanYuanOperator {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入桑榆的成绩:");
int score = in.nextInt();
String str = score>=90 ? "成绩优秀,奖励游戏机一台" : "成绩不太行,奖励英语书一本,学英语";
System.out.println("桑榆的奖励:"+str);
}
}