JAVA基础语法(1)
1、注释
平时我们编写代码时,在代码比较少的时候,我们还是可以看懂自己写的代码,但是当代码量突然之间变多了的时候,我们就需要加上注释,以便让我们可以直接看出这段代码的意义。
注释并不会被执行,这是供我们这些开发人员看的。
书写注释是一个很好习惯
java中的注释有三种:
单行注释;多行注释;文档注释。
使用方式见下面代码:
public class HelloWorld {public static void main(String[] args) {//输出一个HelloWorldSystem.out.println("Hello,World!");
//假如需要注释的内容有很多行的时候就需要使用多行注释//多行注释的语法是 /* */
/** 多行注释* 多行注释* 多行注释* 多行注释*/
//文档注释是和javaDoc连接使用的,在里面可以添加一些说明 其语法格式如下:/*** 在这里面可以写一些对于自己代码的说明*它比多行注释第一行多了一个**/
}
}
2、标识符
程序员指定的名字,例如类名、变量名、方法、接口、枚举等;构成标识符的字母有一定的规范要求,Java中的标识符命名规则如下:
1、区分大小写,MyName和Myname是不同的标识符
2、首字母不能是数字开头,可以是下划线_或者美元符$或字母
3、除了首字母外的其他字符,有下划线、美元符、数字、字母构成;
4、关键字不能作为标识符;
注意:此处的字母采用的是双字符Unicode编码,它包含了亚洲文字编码,如中文、韩文、日文等,但是我们在定义标识符是不建议使用中文。
命名规范:
驼峰命名法:
变量名、方法名:首字母小写,其余单词的首字母大写(小驼峰)
类名、项目名、接口名:首字母大写、其余单词的首字母大写(大驼峰)
包名:全部小写,用英文的. 隔开,实例:域名反写
edu.zut com.baidu
常量名:全部大写,单词之间用_隔开
IF_ADDR
3、关键字
50个关键字,全都是有java本身定义好的,不能挪作他用(都是小写)
abstract | accsert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
4、保留字
即不是关键字,又不能作为标识符使用,也不能在程序中使用的字符序列。goto与const
goto :在其他语言中叫做“无限跳转”,在java中不再使用,因为无限跳转语句会破坏程序结构;在java中,goto的替换语句可以通过break,continue、return实现有限跳转
const:其他语言中用于声明常量,java中声明常量使用的是public statis final方式
5、java分隔符
在java中用于分隔的字符,主要有分号; 大括号{} 和空白
1、分号,表示一条语句的结束
2、大括号,在java中,{}括起来的语句集合称为语句块或符合语句;在定义类或方法时,语句块也被用作分割类体或方法体
3、空白,在java中,元素之间允许有空白,空白数量不限;适当的空白可以改善对源代码的可读性。
6、变量
在java中,我们如何表示变化的数据? 利用变量
变量:变量即在程序运行过程中它的值是允许改变的量。
相当于把一段数据都赋值给一个简单好记的名称,这就是变量。
强调变量的命名规范
这里我们只讲局部变量;全局变量和静态变量都不讲。
变量的语法格式
数据类型 变量名称 【=初始值】;
变量名的定义要遵守标识符命名规范,同时在相关的作用域中不能有重复的变量名。变量的适用范围即变量的作用域,超过作用范围即无法使用。
变量的使用是通过其变量名称进行直接使用的。
局部变量的使用需要先赋值后使用。
Java中的基本数据类型
数据类型分为8种基本数据类型和引用数据类型
基本类型:数值型:整数类型:(byte,short,int,long ); 浮点类型(float,double)字符型(char)->也属于整数类型;布尔型(boolean);引用类型:类(class);接口(interface);数组(array)。
基本数据类型的长度和范围
数据类型 | 大小/位 | 可表示的数值范围 |
---|---|---|
byte(字节型) | 8 | -128~127 |
short(短整数) | 16 | -2^15~2^15-1 |
int(整数) | 32 | -2^31~2^31-1 |
long(长整数) | 64 | -2^63~2^63-1 |
float(单精度) | 32 | -3.4E38~3.4E38 |
double(双精度) | 64 | -1.7E308~1.7E308 |
char(字符) | 16 | 0~65535 |
boolean | true/false |
基本数据类型的变量定义使用时,需要注意,long类型的整数需要在初始值后面加l或L
float类型的小数需要在数值后面加F或f,double类型加不加d均可。同时,整数数值的默认类型是int;同时,char字符类型的使用需要使用单引号,同时char字符类型也属于数值类型,可与int等数值类型进行数学计算或者进行转换,其对应的数值取值范围为0--2^16-1
补充:
字符串:有字符组成的一串字符序列;java中常使用String表示字符串;例如:String name = “张三”;
当+连接字符串与其他数据时,此时+号不再是算数运算符,而是拼接的意思。
如:String s = "hello"+“!”;
练习:使用idea自定义类,在main方法种创建变量姓名(String)、年龄(int)、身高(double)、体重(float)、电话(long)、工资(double)并进行赋值,然后在控制台打印输出对应信息。
练习代码:
public class First {
public static void main(String[] args) {// 姓名(String)、年龄(int)、身高(double)、体重(float)、电话(long)、工资(double)String name = "jack";int age = 15;double height = 1.71;float weight = 66.6f;long phone = 64981981320l;double money = 12000;System.out.println("姓名:"+name+" 年龄:"+age+" 身高:"+height+" 体重:"+weight+" 电话:"+phone+" 工资:"+money);}
}
7、基本数据类型转换
在java中,定义好的基本数据类型可以根据需要进行类型转换,如int转double,float转int等。
根据数据能否自动完成类型转化分为:自动类型转换与强制类型转换。
自动类型转换
类型转换自动完成,不需要加以干预。总体原则是小范围的数据转大范围的数据自动完成。
转换顺序:byte-short-int(char)-long-float-double
注意:char转换较为特殊,参考ASCII码表,char转int自动转,int转char强制转
强制类型转换
即大范围的数据转成小范围类型的时候,不会自动转换,需要进行强制转换;强制类型转换可能会造成数据进度的丢失或者数据溢出。
强制类型转换格式: (强转的数据类型)强转的数据;
数据转换注意:
1、不能对boolean类型进行类型转换;
2、在把容量大的类型转换为容量小的类型时必须使用强制类型转换;
3、转换过程中可能导致溢出或者精度损失;
4、浮点数到整数的转换是通过舍弃小数部分得到的,而不是四舍五入;
5、条件是转换的数据类型必须是兼容的;
6、整数的默认类型时int long a = 100L;
7、浮点类型不存在这种情况,因为在定义float类型时必须在数字后面加上F或f;
8、使用long类型的数据一定要在数值后面加上L;一般不加小写l,因为l和1很像。
练习:
着重练习int与char类型之间的转换。
定义char c = ‘A’; 转换成int类型
定义int i = 100,转换成char类型
定义double d = 101.25,转换成int类型,并观察数据是否丢失;
定义int i2 = 10002,转换成long 类型,short类型以及byte类型,并观察转换成byte类型等。。。。
练习代码:
public static void main(String[] args) {/** 定义char c = ‘A’; 转换成int类型定义int i = 100,转换成char类型*/char c = 'A';int a = c;int i = 100;char b = (char) i;System.out.println("c的int类型数值为:"+a+" i的char类型字符为:"+b);
//定义double d = 101.25,转换成int类型,并观察数据是否丢失;double d = 101.25;int e = (int)d;System.out.println("d的int类型数值为:"+e);
//定义int i2 = 10002,转换成long 类型,short类型以及byte类型,并观察转换成byte类型等。。。。
int i2 = 10002;long l = i2;short s =(short) i2;byte b1 = (byte)i2;System.out.println("i2的long类型数值为:"+l+" i2的long类型数值为:"+s+" i2的long类型数值为:"+b1);
}
8、运算符
Java中,运算符大致分为算术运算符,关系运算符,逻辑运算符,位运算符和其他运算符。
算术运算符
用于数值类型数据的算术运算,按照操作数的不同,分为一元运算符和二元运算符。
一元运算符:++、--;
二元运算符:+ 、-、*、/、%;
算术赋值运算符:+=、-=、*=、/=、%=;
注意:++、--的使用,当++参与运算时,++在前与在后是不同的;
在后表示先赋值后运算,++在前表示先运算再赋值。
比较运算符:>、<、>=、<=、==、!=;
比较运算符合的时候正好和boolean结合使用。
逻辑运算符:&& 并且、|| 或者、
位运算符:
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
& | 与 | 1&0,0&0,1&1 | 0,0,1 |
| | 或 | 1|0,0|0,1|1 | 1,0,1 |
^ | 异或 | 1^0,0^0,1^1 | 1,0,0 |
^运算规律:
1^0 = 1,0^0 = 0,任何数和0相异或得到的都是这个数本身;
0^1 = 0,1^1=0,任何数和1相异或得到的是这个数的相反;
一个数自己和自己异或得到的是0;
三目运算:?:
定义:对于条件表达式b ? x : y
,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
运算符的优先级:
优先级 | 运算符 |
---|---|
1 | () |
2 | !、+(正)、-(负),++,-- |
3 | * 、/、% |
4 | +(加)、-(减) |
5 | <、<=、>、>= |
6 | ==、!= |
7 | ^ |
8 | && |
9 | || |
10 | ?: |
11 | =、+=、-=、*=、/=、%= |
9、java流程控制
选择结构
if语句:if(){}
当()里面的表达式为真时执行{}里面的内容
//并列if判断 无论上面的条件是否成立,下面的if都会进行判断if(a<b){System.out.println("a小于b");}if(a>b){System.out.println("a大于b");}if(a==b){System.out.println("a等于b");}
if …else
//上面条件成立时下面就不再判断if(a<b){System.out.println("a小于b");}else{System.out.println("a不小于b");}
if…else if…else
if(a<b){System.out.println("a小于b");}else if(a>b){System.out.println("a大于b");}else{System.out.println("a等于b");}
多条件判断
if(1<a&&a<5){System.out.println("并且是&&,两个条件都为真");
}
if(a==1||a==3){System.out.println("或者是||,两个条件至少有一个是真");
}
if(a!=3||a!=4){System.out.println("!=代表不等于");
}
练习: 定义变量性别(sex)以及收入(salary)如果是sex为true并且薪水大于8000就输出高富 帅,否则就是穷屌丝,如果sex为false,并且薪水大于 8000,输出白富美否则就是.......
练习代码:
public static void main(String[] args) {//输入Scanner sc = new Scanner(System.in);//输入性别,true或falseBoolean sex = sc.nextBoolean();//输入薪水int salary = sc.nextInt();//判断if(sex .equals(true)&&salary>=8000){System.out.println("高富帅");}else if(sex.equals(true)&&salary<8000){System.out.println("矮矬穷");}else if(sex.equals(false)&&salary>=8000){System.out.println("白富美");}else{System.out.println(".......");}}
定义变量成绩(score),根据成绩判断,如果成绩大于90,输出优秀,[80,90)输出良好,[60,80)输出及格,60以下输出不及格
练习代码:
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();//成绩大于90,输出优秀,[80,90)输出良好,[60,80)输出及格,60以下输出不及格if(a>=90){System.out.println("优秀");}else if(a>=80&&a<90){System.out.println("良好");}else if(a>=70&&a<80){System.out.println("及格");}else {System.out.println("不及格");}}
switch case语句
switch后边的表达式只能是整型字符型(byte, short,int,char),枚举类型,其中jdk7之后支持字符串型
10、Scanner类
属于引用类型,创建的时候需要固定格式
数据类型 变量名 = new 数据类型();
需要导入所在的包:import java.util.Scanner;
创建对象:Scanner sc = new Scanner(System.in);
获取输入的整数:int s = sc.nextInt();
获取输入的字符串:String str = sc.nextLine();
注意sc.nextInt()和sc.nextLine()会中断程序
练习:使用switch计算每个月有多少天 (随机年份2001 年到3033年,月份在控制台输入1-12,如果输入的月份不在1-12则提示用户重新输入月份,闰年:能被4整除 但不能被100整除,或者能被400整除)
练习代码:
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入年份:");int year = scanner.nextInt();System.out.println("请输入月份:");int m = scanner.nextInt();int day = 0;switch (m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if(year%4==0&&year/100!=0||year%400==0){day = 29;}else {day = 28;}}System.out.println(day);
}
11、循环结构
while循环和do–while循环
while循环 格式:
当条件为真时执行循环体中的内容;
while(条件){语句;
}
do-while循环
先执行do中的内容,然后进行条件判断,如果条件为true, 执行循环体中的内容
在do中定义的变量只能在do中使用,不能在条件中和 do–while外进行使用
格式为 :
int b = 0;
do{b = 13;System.out.println(111111);
}while(b<15);
for循环
for循环的格式:
//如下:先定义一个变量i,当i<10时执行循环内容,执行一次i+1//在for循环中定义的i只能在for循环中使用for(int i=0;i<10;i++){System.out.println("hello");
}
break :跳出当前循环;
continue:跳出当前此次循环,下次循环继续;
练习:1、利用while循环和do..while循环 输出字母a-z 、A-Z
public static void main(String[] args) {char c = 'a';char l ='A';while(c<=122){System.out.println(c);c++;}do{System.out.println(l);l++;}while(l<=90);}
2、利用while或do....while循环,结合scanner,从控制台获取输入的整数,从这个值开始,依次与这个值之后的n个自然数相加,当和超过100时结束,输出此时的值和自然数的值。
public static void main(String[] args) {int a,sum = 0,i = 0;Scanner sc = new Scanner(System.in);a = sc.nextInt();i = a;while(sum<=100){sum = sum+a;a++;}System.out.println("此时的值是:"+a+" 输入的自然数的值是:"+i);}
3、猜数字游戏,利用random随机产生一个[50,100]之间的数字,用户在控制台输入一个数字,如果用户输入的数字等于随机产生的数字,则输出游戏结束,否则,比较用户输入的数字,告诉用户输入的数字是大于随机数还是小于随机数,之后用户重新输入继续猜数字,直到猜对为止
public static void main(String[] args) {System.out.println("猜数字游戏开始");System.out.println("输入1-100之间的数据:");//创建Random类变量Random ran = new Random();int a = ran.nextInt(100)+1;//创建Scanner类变量Scanner in = new Scanner(System.in);while(true) {int b = in.nextInt();if(number>a) {System.out.println("您猜测得数字较大,请继续猜测!");}else if(b<a) {System.out.println("您猜测得数字较小,请继续猜测!");}else {System.out.println("恭喜你,猜对了!");System.out.println("游戏结束!");break;}}}
4、利用for循环计算100文钱能买多少只鸡?5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱买三只小鸡,问100问钱买100只鸡,那么公鸡、母鸡、小鸡各多少只?
public static void main(String[] args) {
for(int i=1;i<=20;i++){for (int j=0;j<34;j++){if(i*5+j*3+(100-i-j)/3==100&&(100-j-i)%3==0){System.out.println("公鸡:"+i+"只,母鸡:"+j+"只,小鸡:"+(100-i-j)+"只");}}}}
JAVA基础语法(1)相关推荐
- Java基础语法(数组)
第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...
- 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...
- Java基础语法(一)
Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...
- Java基础语法初学者了解
Java语言的特点 简单的面向对象语言 跨平台与解释执行 可以做到一次编译,到处执行. (Java跨平台,Java虚拟机不跨平台) 在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行.通过定 ...
- java基础语法(二)--单列模式
java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- (31)Java基础语法 --接口
目录 1.接口的概述 2.接口的定义格式 3.在接口中定义抽象方法 4.定义接口的 实现类 5.接口的使用 接口练习 6.接口的特点 7.一个实现类可以同时实现多个接口 8.接口的继承 9.设计提示 ...
- Java基础语法02-流程控制
Java基础语法2 1 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程. ...
- Java基础语法-数据类型与idea配置
文章目录 day02 - Java基础语法 1. 注释 使用的技巧 注意点 2. 关键字 2.1 概念 2.2 第一个关键字class 3. 字面量 区分技巧 4. 变量 4.1 什么是变量? 4.2 ...
- 1. Java基础语法
1-- Java概述 2--常用DOS命令 在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令. 1.打开命令行窗口的方式:win + r打开运 ...
最新文章
- 如何将github上源代码导入eclipse中
- 性能:15个JavaScript本地存储技术的函数库和工具
- node实现爬取当前页面链接实现
- idea加入springboot插件_带你搭一个SpringBoot+SpringData JPA的环境
- Matlab | Matlab从入门到放弃(3)——函数与画图
- XCode发布IPA离线安装包步骤
- android t类型参数,android – Kotlin属性:“属性的类型参数必须在其接收器类型中使用”...
- Java——网络编程(实现基于命令行的多人聊天室)
- Openfire on Centos7
- linux io100的原因_Unix与Linux的区别与联系
- MySQL SQL 优化命令行问题 SQL 抓取方式
- (转)OpenLayers3基础教程——OL3基本概念
- esxi存储(外部共享存储)- Open FIle
- 学习笔记_vnpy实战培训day02
- 移动web中的幻灯片切换效果
- c语言gs迭代法解方程,ex1_7-GS迭代法例题源程序及注释.pdf
- 依次将10个数输入,要求打印出其中最大的数
- 深度学习2.0-1.tensorflow的基础操作之数据类型
- 五、Ceph之RBD存储使用
- 《自然语言处理实战:利用Python理解、分析和生成文本》读书笔记:第1章 NLP概述
热门文章
- 1 个月将公众号阅读量提高了 2 倍,怎么做到的?
- 传小鹏汽车融资近4亿美元:小米投资
- 图片扩展名如何修改,转换图片格式轻松搞定
- Error: L6218E: Undefined symbol f_mkfs (referred from main.o)
- 华东师范大学计算机考研信息汇总
- 华东师范大学计算机网络试卷,华东师范大学网络教育学院《计算机入门》模拟考试卷.doc...
- 360度全景图片怎么拍摄?
- 关于IOS设备window onscroll滚动条滚动事件不触发的问题
- 周末加班有加班费,真是太好了
- 《天下无贼》经典台词与遗憾