Hellloworld基本的代码入门
第一步:创建txt文件,文件名为"HelloWorld".
第二步:编写一个类(java中的最基本单元),类的名称建议是和文件的名称一致.
class HelloWorld{
public static void main(Strimg[] args){
System.out.printIn("helloworld");//分号表示语句结束
}
}
class:java中最基本的单元,类(class xxx)
对类/接口起名字:大驼峰命名法
一个单词:首字母大写
多个单词:每个单词首字母大写
对变量以及方法起名字:小驼峰命名法
一个单词:全部小写
多个单词:第一个单词小写,第二个单词首字母大写,后面都小写
对常量的命名多个单词(常用):
每个单词字母大写,单词和单词直接用下划线隔开
public:权限修饰符:公共的,公开的,任何人都可以访问的(访问权限足够大)
static:静态修饰符
void:java语言中定义方法/函数用的
main(String[] args):main方法(能够被jvm识别),直接就运行,main方法是程序的入口
System.out.pringIn("xxxxxx"):输出语句(字符串)
第三步:将.txt文件后缀名改为.java文件
第四步:将刚刚生成的HelloWorld.java文件进行编译.
javac.exe----->Java文件的编译命令
java.exe------>Java文件的运行指令(需要在dos窗口运行)
常见的组合键:
ctrl+c///ctrl+v:复制粘贴.
ctrl+z:撤销.
ctrl+s:保存.
tab:缩进.
常量
指的是在程序过程中,值不发生改变的量
分类:
字符串常量"xxxxxxx"
字符常量'a','A','0'
整数常量
小数常量
布尔常量
空常量
变量三要素
变量的限定:数据类型
变量名:遵循标识符的规范要求
初始化值:要和数据类型保持一致
数据类型划分
基本数据类型(四类八种)
第一类:整数类型:
byte,short,int(默认),long
第二类:浮点类型
float,double
第三类:字符类型
char
第四类:boolean
int x =100;
short s =20;
long l =100000L;
float f =12.22F;
double d =3.11;
char c = 'a';
boolean b = false;
标识符的组成
26个英文大小写字母
0-9的数字
_(下划线)
$
严格区分大小写
定义标识符时不能以数字开头
不能时Java中的关键字
起名字要见名知意
类型转换
Java隐式转换(Java数据类型默认提升)
byte,short,char三者之间不转换,一旦参与运算,优先提升int---long----float
Java类型的显示转换(强制类型转换:强转)
将大的类型范围转换成小的数据类型
格式:目标数据类型 变量名=(目标数据类型)(表达式或者初始化值);
int a =65;
char c =(char)a//'A'
运算符
基本运算符:
算术运算符
比较(关系)运算符
逻辑运算符(使用最多的)
逻辑单与&
逻辑单或|
逻辑异或^
逻辑非!
逻辑双与&&
逻辑双或||
三目运算符(三元运算符)
注意事项:
/ 是取整
% 是求余数的
扩展的算术运算符:++,--
classOperatorDemo{
public static voidmain(String[] args){
扩展的算术运算符
扩展的算术运算符:++,--
情况1:单独使用:比较简单无论++或者--在数据的前面还是后面,都是对这个变量本身自增1或者自减1
情况2:参与运算使用
1)如果++或者--在数据的前面,先进行自增或者自减,然后参与运算;
2)如果++或者--在数据的后面,先运算,然后进行自增或者自减
赋值运算符的扩展赋值运算符的特点
隐藏了强制类型转换
/*
面试题: 考点(扩展的赋值运算符的特点)
定义一个short类型的变量
short s = 1 ;
1)s = s + 1 ;
2) s += 1 ;
1)和2)代码哪一个编译失败,为什么,哪一个编译成功,为什么?
1)会失败
=右边,s---先提升int,然后进行计算--->结果为int=左边short,无法接收=右边的int类型
2)不会失败
在扩展的赋值运算符里面,
+=,-=,*=,/=,%= 隐藏了强制类型转换
s += 1 等价于 s = (short)(s + 1);
//改进
int s = 1 ;
s +=1 ; ===等价 s = s +1 ;
*/
classOperatorDemo2{
public static voidmain(String[] args){
//定义变量
shorts =1;
//不兼容的类型: 从int转换到short可能会有损失
//s = s + 1 ;//会编译失败,=右边,s---先提升int,然后进行计算-
-->结果为int
//=左边short,无法接收=右边的int类型
//强制类型转换
//s = (short)(s+1) ;
//System.out.println(s) ;
s +=1;//等价于 s = (short)(s + 1); 隐藏了强制类型转换
//相当于这个s = (short)(s+1) ;
System.out.println(s) ;
}
}
比较运算符
这些运算符:无论这些符号连接的表达式是简单的还是复杂,结果应该布尔类型,true/false
表达式:
这些运算符号--连接起来多个变量
注意:
==不能写成 =
数学表达式:
3<=x<=5,在计算机语言中,无法这样书
写,需要逻辑符号连接起来
x>=3 &(逻辑单与) x <=5
classOperatorDemo{
public static voidmain(String[] args){
//<,>,<=,>=,==,!=
//定义三个变量
inta =3;
intb =4;
intc =5;
System.out.println(a>b) ;
System.out.println(a<b) ;
System.out.println(a>=b) ;
System.out.println(a<=b) ;
System.out.println((a+b)<=(b+c)) ;
System.out.println(a!=b) ;
System.out.println(a==c) ;
System.out.println("---------------------------------") ;
//==不能写成 =
intm =10;
intn =20;
//两个数据比较:使用boolean接收
booleanflag = (m==n) ;
//int无法转换为boolean
//boolean flag = (m=n) ;//将n的值赋值给m,将m的值留下来赋值
给flag,而flag变量是boolean
System.out.println(flag) ;
}
}逻辑运算符
(登录/注册,判断用户是否登录成功了或者判断用户是否注册成功)进行业务逻辑判断;
基本的逻辑运算符
逻辑单与& ----并列关系
特点:有false,则false;
逻辑单或| ----或的关系
特点:有true,则true
逻辑异或^
特点:
相同则为false,不同则为true
简单记忆:男女关系
男女 女男 true
女女 男男
false
逻辑非!
非true,则false;非false,则true;偶数给非是它本身
classOperatorDemo{
public static voidmain(String[] args){
//定义三个变量
inta =3;
intb =4;
intc =5;
//逻辑单与&
System.out.println((a>b) & (a>c)) ;//false & false =false
System.out.println((a<b) & (a>c)) ;//true & false = false
System.out.println((a>b) & (a<c)) ;//false & true = false
System.out.println((a<b) & (a<c)) ;//true & true =true
System.out.println("------------------------------") ;
//逻辑单或|
System.out.println((a>b) | (a>c)) ;//false | false = false
System.out.println((a<b) | (a>c)) ;//true | false = true
System.out.println((a>b) | (a<c)) ;//false | true = true
System.out.println((a<b) | (a<c)) ;//true | true = trueSystem.out.println("------------------------------") ;
//逻辑异或^
System.out.println((a>b) ^ (a>c)) ;//false ^ false = false
System.out.println((a<b) ^ (a>c)) ;//true ^ false = true
System.out.println((a>b) ^ (a<c)) ;//false ^ true = true
System.out.println((a<b) ^ (a<c)) ;//true ^ true = false
System.out.println("------------------------------") ;
//逻辑非!
//非true,则false;非false,则true;偶数给非是它本身
System.out.println(!(a>b)) ;
System.out.println(!!(a>b)) ;
}
}
扩展的逻辑运算符
逻辑双与&& ---并列关系,必须同事满足条件,才成立;
逻辑双或||
--- 或的关系:有一个满足条件 成立;
面试题:
逻辑双与&&和逻辑单与&的区别?
共同点:有false,则false
不同点:
逻辑双与&&:具有"短路"效果,
当&&连接的表达式如果左边为
false,则右边不执行了!
实际开发中:&&以及||使用最多,他们可
以提高程序的执行效率;
逻辑双或||
||连接的表达式左边true,右边不执行了(具有短路效果),
有true,则true
classOperatorDemo2{
public static voidmain(String[] args){//三个变量
inta =3;
intb =4;
intc =5;
//逻辑双与&&
System.out.println((a>b) && (a>c)) ;//false && false =false
System.out.println((a<b) && (a>c)) ;//true && false = false
System.out.println((a>b) && (a<c)) ;//false && true = false
System.out.println((a<b) && (a<c)) ;//true && true =true
System.out.println("----------------------------------------
") ;
//定义x变量赋值3
intx =3;
inty =4;
System.out.println("x:"+x) ;//x:3
System.out.println("y:"+y) ;//y:4
//false
//x ++ = 4
//System.out.println((x++)==4 && (--y)==3 ) ;//false //&&的
左边表达式false,则右边不执行了
//System.out.println("x:"+x) ;//4
//System.out.println("y:"+y) ;//4
//逻辑单与&,左边表达式为false,右边依然要执行,开发中不用它,
效率太低
System.out.println((x++)==4& (--y)==3) ;//false
System.out.println("x:"+x) ;//4
System.out.println("y:"+y) ;// 3
}
}
三元运算符格式:
(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;
执行流程:
1)先判断表达式是true还是false,如果是true,执行成立的
结果;
2)如果是false,执行不成立的结果;
classOperatorDemo{
public static voidmain(String[] args){
//定义了两个变量
intx =20;
inty =5;
//求x,y这两个数据的最大值;
//定义一个结果变量,接收结果
//(简单或者复杂的表达式)? 执行成立的结果:执行不成立的结果;
intmax = (x>y)? x:y ;
System.out.println("两个数据中的最大值是:"+max) ;
System.out.println("---------------------------------") ;
//求x,y的最小值
intmin = (x<y)?x:y ;
System.out.println("两个数据中的最小值是:"+min) ;
System.out.println("---------------------------------") ;
//比较x,y的值是否相等
//boolean接收
//boolean flag = (x==y)?true:false ;
// 优化
booleanflag = (x==y) ;//==本身就是比较
System.out.println("flag:"+flag) ;
//练习
//有三个数据,a,b,c int类型,
//int a = 20 ;
//int b = 50 ;
//int c = 15 ;//使用三元运算符:完成三个数据比较,获取最大值?
}
}