2.java的基本语法
@一贤不穿小鞋
1.变量
- 计算机内存中一块存储空间,是存储数据的基本单元。
- 变量是内存地址的别名。
1.1:变量的三要素(三个组成部分)
- 变量名(采用驼峰式命名法),变量数据类型,变量值.
(java是一种强类型的语言),变量名采用驼峰式命名法. - 变量命名
首字母(字母、下划线_、钱符号$)+其余部分(任意多的数字、字母、下划线、钱符号)。
常见错误:未赋值就输出,变量名命名不正确,命名重名(大写与小写区分不重名)。
1.2:变量数据类型与变量值的类型要一致
1.3:变量必须先声明赋值后,才能使用.
- =叫赋值号:将=右边的值赋给左边.
1.4:变量声明和赋值的语法:
1.4.1:直接声明变量的语法:数据类型 变量名;
eg://声明变量String name;
1.4.2:声明变量的同时赋值: 数据类型 变量名=值;
eg:int age=18;float height=1.7f;char sex='女';float wangHeight=1.8f;boolean result=height>wangHeight;double weight=40.5;long money=1000000000000L;
1.4.3:变量赋值的语法:变量名=值;
name="老师";name="薛强";
1.4.4:同时声明多个相同数据类型的变量并赋值:声明了三个变量,只给变量名2赋值.
- 数据类型 变量名1,变量名2=值2,变量名3;
eg://声明多个相同数据类型的变量,给部分变量赋值String name1,name2="张三",name3,name4,name5;
1.5:在同一个范围内不能出现相同变量名
(目前来理解在同一main方法不能声明两个相同变量)
1.6:(了解)可以同时声明多个相同变量然后赋值:
- 数据类型 变量名1,变量名2=值,变量名3;
eg:String name1,name2,name3="操礼建",name4,name5="樊章龙";System.out.println("第五个学生姓名:"+name5);System.out.println("第三个学生姓名:"+name3);
1.7:常量:一但赋值不可更改.
- 常量声明和赋值语法:final 数据类型 常量名=值;
eg:final char XUE_SEX='男';//XUE_SEX='女';eg://声明常量 //final double PI=3.1415926;final double PI;PI=3.12;
1.8:变量的分类:
1.8.1:按数据类型来分:
- 基本数据类型的变量:变量的数据类型是byte,short,int,long,float,double,boolean,char
- 引用数据类型的变量:变量的数据类型是String,数组,集合,类,接口
1.8.2:按变量声明的位置分:
- 局部变量:在方法中声明的变量.作用范围仅在声明它的大括号中有效.
- 成员变量:在类中方法外面直接声明的变量.
2.java中常用数据类型
2.1:基本数据类型:
- 整数:byte(1个字节),short(2个字节),int(4个字节),long(8个字节,值后面加L)
(一般整数默认就是int)
- 浮点数(小数型的):float(4个字节,值后面加f),double(8个字节) (一般小数默认是double)
- 布尔类型的数:boolean(值只能是true/false)
- 字符类型:char(1个字符,也就是两个字节,值要用单引号)
说白了就是一个字符存一个字母,或一个汉字,或一个标点符号。
eg://声明变量的同时赋值int age=18;float height=1.72f;double weight=50.5;char sex='女';
2.2:引用数据类型:字符串(String),数组,集合,类,接口
eg:public static void main(String[] args){//声明变量String name;//给变量赋值,字符串要用""赋值name="老师";name="薛强";//在声明变量的同时赋值,整数和小数可以直接给值,char类型要用''给值int age=18;float height=1.7f;char sex='女';float wangHeight=1.8f;boolean result=height>wangHeight;double weight=40.5;long money=1000000000000L;//声明常量final char XUE_SEX='男';//XUE_SEX='女';System.out.println("姓名为:"+name);System.out.println("年龄为:"+age);System.out.println("性别为:"+sex+",体重为:"+weight);System.out.println("身高为:"+height);System.out.println("我比王祥醒高:"+result);System.out.println(name+"的性别为:"+XUE_SEX);System.out.println("银行的存款:"+money);}
2.3:char虽然存一个字符,但是由于ASCII和Unicode(万国码)码表对应,部分数字用ASCII可以转换为单个字符,Unicode(万国码)码转换为单个字符,所以char可以存部分数字(0-65535)
eg://本来char只能存一个字符,因为每个字母都有对应ASCII码表对应,
所以char能存数字,前提是这个数字在ASCII码表中对应一个字符char num1=66;//本来char只能存一个字符,因为有万国码,每个万国码对应一个字符,
所以char类型可以存万国码.char num2='\u0041';
eg://char与ansii码,unicode码使用char c1='A';char c2=65;//A对应ansii码char c3='\u0041';//A对应unicode码System.out.println("c1="+c1+",c2="+c2+",c3="+c3);
3.转义字符:所有转义字符必须全定在""中
eg:System.out.println("年\t龄为:"+age+",\n身高为:"+height);
4.数据类型转换
4.1:自动类型转换:语法: 目标大数据类型 变量名=原小数据类型的变量
- 兼容:同种类型
- 两种类型要兼容.
- 目标类型大于原类型(小转大)
eg:int num1=11;//自动类型转换,int->long//long类型中存的值如果是在int范围内可以不带L,超过int范围是一定要带Llong num2=num1;System.out.println("num2="+num2);//自动类型转换float num3=num1;double num4=num1;System.out.println("num4="+num4);
4.2:强制类型转换 语法:目标小数据类型 变量名=(目标小数据类型)原大数据类型的变量
- 两种类型要兼容.
- 目标类型小于原类型(大转小)
eg://强制类型转换float num5=22.0f;int num6=(int)num5;System.out.println("num6="+num6);//强制类型转换double num7=6.88;int num8=(int)num7;System.out.println("num8="+num8);float num9=(float)6.18;System.out.println("num9="+num9);
4.3:int与char之间转换:(原因就ascii码和unicode码)
4.3.1:char转换为int
eg://char从 ascii码编码0-255 ,unicode码/u0000-/uffff(0-65535)内数字或字符或编码都自动转换为类型char c1=65535;char c2='A';char c3='我';int num11=c3;System.out.println("num11="+num11);
4.3.2:在码表范围内int类型转换为char类型,要进行强制类型转换
eg:int num12=65;char c4=(char)num12;System.out.println("c4="+c4);
4.4:byte类型int:当一个数赋值给变量时,超过变量取值范围,就在这个范围内转圈圈
byte b1=11;//11byte b2=11+11;//22//byte b3=200;//报错//当一个数赋值给变量时,超过变量取值范围,就在这个范围内转圈圈byte b3=(byte)200;//-56=200-(取值范围中数127+128+1)byte b4=(byte)2000;//-48=2000-(取值范围中数127+128+1)*nbyte b5=(byte)273;//17
5.运算符:
5.1:算术运算符:+,-,*,/,%,++,- -
5.1.1:-,*与数学中用法是一样的,算术运算.
5.1.2:+:如果+左右两边是数字,作算术运算
- 如果+左右两边有一边是字符串,起连接作用
eg:int num1=11;//起算术运算int num2=11+22;//起连接作用System.out.println("num2的值为:"+num2);//第一个+起算术运算,第二个+起连接作用System.out.println(1+1+"1");//21//两个+起连接作用System.out.println("1"+1+1);//111
5.1.3:/:算术运算,在java中 整形数字=整形数字/整形数字;
eg://除法运算int num3=9/3;//3int num4=10/3;//3
5.1.4:%(求余/取模):求两个数的余数.
eg://求余运算int num6=10%3;//1
5.1.5:在算术运算中,有一个数为大类型,则结果为大类型
eg:double num5=10/3.0;System.out.println("num5="+num5);
//给你一个随机四位数,算出各位数之和.eg: 1234 结果10int num=3456;int qianWei=num/1000;int baiWei=num/100%10;int shiWei=num/10%10;int geWei=num%10;int sum=qianWei+baiWei+shiWei+geWei;
5.1.6:++:自身+1,- -:自身-1
- 如果++在变量的前面,变量先自身加1,再参与运算.
- 如果++在变量的后面,变量先参与运算,再自身加1.
- 如果–在变量的前面,变量先自身减1,再参与运算.
- 如果–在变量的后面,变量先参与运算,再自身减1.
eg:int count1=10;//int result1=++count1;//11 ->count1=count1+1//11,result1=count1//int result2=count1--;//11->result2=count1//11,count1=count1-1//10//System.out.println("result1="+result1+",result2="+result2);//System.out.println("count1="+count1);//10 //int result3=(count1--)+(++count1)+count1*count1;//120//result3=(10)+(++count1)+count1*count1; count1=9//result3=(10)+(10)+count1*count1; count1=10int result4=(++count1)+(count1--)+(--count1)*(++count1);//112//result4=(11)+(count1--)+(--count1)*(++count1); count1=11//result4=(11)+(11)+(--count1)*(++count1); count1=10//result4=(11)+(11)+(9)*(++count1); count1=9//result4=(11)+(11)+(9)*(10); count1=10System.out.println(result4);
5.2:关系运算符:表比较,>,>=,<,<=,==(表示相等),!=(表示不相等)
eg:int num1=11;int num2=13;boolean result1=num1==num2;System.out.println("result1="+result1);boolean f1=true;//对boolean f2=f1;//对//boolean f3==f2;//错boolean f4=f2=f1;//对//先进行==,再=赋值boolean f5=f2==f1;//对
5.3:逻辑运算符:且(&,&&),或(|,||),非(!)
- 且:左右两边的式子为true,结果就为true,如果左右两边有一个式子为false,结果为false.
&:&左右两边的式子无论是true或false,两个式子都会执行.
&&(短路且):&&左边的式子为false,右边的式子不会执行. - 或:左右两边的式子有一个为true,结果就为true,两边都为false,结果才为false
|:|左右两边的式子无论是true或false,两个式子都会执行.
||(短路或):||左边的式子为true,右边的式子不会执行.
eg:int num3=10;//boolean result2=(++num3)<10&(--num3)<10;//&左右两边都执行num3=10//boolean result2=(++num3)<10&&(--num3)<10;//&&左边为false,右边不执行num3=11//boolean result2=(++num3)<10|(--num3)<10;//|左右两边都执行num3=10//boolean result2=(++num3)<10||(--num3)<10;//||左边为false,两边都执行num3=10boolean result2=(++num3)>10||(--num3)<10;//||左边为true,右边不执行num3=11System.out.println("num3="+num3);//11
5.4 赋值运算符:=,+=,-=,*=,/=
5.4.1:=:将=右边的值赋值给左边.
5.4.2:+=,-=,*=,/=:将符号左边的数加上或减去或乘或除以右边的数,将结果赋值给左边.
eg://=的使用int num=23;//+=的使用num+=20;//<=>num=num+20System.out.println("num="+num);
5.5 运算符优先级
- ()>算术运算符>关系运算符>逻辑运算符>赋值运算符
6.三目运算符(三元运算符):
- 语法 :关系表达式?值1:值2
- 执行特点:
如果关系表达式结果为true,整个式子结果为值1;
如果关系表达式结果为false,整个式子结果为值2;
eg:public static void main(String[] args){//声明三个变量存三个值int num1=8;int num2=10;int num3=6;//声明一个变量存前两个数中最大值int max1=num1>num2?num1:num2;//声明一个变量存前两个数中最大值与第三个值比较求最大值int max=max1>num3?max1:num3;System.out.println("三个数中最大值为:"+max);}
7.表达式:操作数+运算符.
- 算术表达式:式子中只有算术运算符和操作数.算术表达式的结果是数值
- 关系表达式(布尔表达式):只要式子有关系运算符.关系表达式的结果是boolean.
8.控制台输入(从键盘上接收数据):三步
- 第一步:导包导在类的上面
import java.util.Scanner; - 第二步:获得从键盘上接上数据的能力
Scanner input=new Scanner(System.in); - 第三步:用这个能力得到指定类型的值
接收int类型的值 input.nextInt();
接收double类型的值 input.nextDouble();
接收String类型的值 input.next();
接收Char类型的值 input.next().charAt(0); - 注意:如果接收值与要求数据类型不匹配,会报InputMismatchException
- 不能从键盘上直接接收char类型的数据,如果想接可以用String类型接收,或者接收一个字符串只要它的第一个字符:input.next().charAt(0);
eg://第一步:导包
import java.util.Scanner;/**
*从键盘上接收用户输入的数据
*@auth sx
*@version 1.0 2020-10-09
*/
public class ScannerTest{/***程序的入口方法*/public static void main(String[] args){//第二步:获得具有从键盘上接收数据的能力Scanner input=new Scanner(System.in);System.out.println("请输入一个整数:");//接收键盘上输入的数据并存在一个变量中int num1=input.nextInt();System.out.println("请输入一个带小数点的数:");//接收键盘上输入的数据并存在一个变量中double num2=input.nextDouble();System.out.println("请输入用户名:");//接收键盘上输入的数据并存在一个变量中String name=input.next();System.out.println("请输入性别(男/女):");//接收键盘上输入的数据并存在一个变量中String sex=input.next();System.out.println("接收整数为:"+num1+",小数为:"+num2+",用户名为:"+name+",性别为:"+sex);}
}
总结:
1.标识符命名规范.
2.关键字
3.变量
4.数据类型
5.数据类型转换
6.运算符:算术运算符,关系运算符,逻辑运算符
2.java的基本语法相关推荐
- 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...
- 浅析java中的语法糖
概述 编译器是一种计算机程序, 它主要的目的是将便于人编写.阅读.维护的高级计算机语言所写的源代码程序, 翻译为计算机能解读.运行的低阶机器语言的程序, 即可执行文件.而 javac 就是java语言 ...
- Java高阶语法---final
背景:听说final Java高阶语法是挺进BAT必经之路. final: final关键字顾名思义就是最终不可改变的. 1.含义:final可以声明成员变量.方法.类和本地变量:一旦将引用声明为fi ...
- java语言基本语法_Java语言基本语法
Java语言基本语法 一.标识符和关键字 标识符 在java语言中,用来标志类名.对象名.变量名.方法名.类型名.数组名.包名的有效字符序列,称为"标识符": 标识符由字母.数字. ...
- java字节型的关键字_DAY06-07 Java的基础语法-注释、标识符、关键字、数据类型
Java的基础语法 注释 注释不会被执行,是给人看的 书写注释是一个非常好的习惯. 注释类型: (1)单行注释:// 注释内容 (2)多行注释:/ * - 注释内容-. * / (3)文档注释:/* ...
- 大数据必学Java知识(一):Java基础入门语法和安装
Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...
- Java正则表达式的语法与示例
Java正则表达式的语法与示例 正则表达式是什么?用我的理解就是一个表达式.用来匹配,替换,判断字符串,之前业务就出现过判断返回值是否为邮箱. 以下内容来自于http://baike.xsoftlab ...
- Java基础1语法准备
77集程序底层执行 初识Java 1.1计算机语言发展史以及未来 计算机语言经历了三代:第一代是机器语言,第二代是汇编语言,第三代是高级语言. ·第一代语言:机器语言(相当于人类的原始阶段) 机器语言 ...
- 阿里云面试:什么是语法糖?Java中有哪些语法糖?
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- Java中的语法树结构
1.JCTypeParameter 1 class B<T extends CA&IA&IB> { ...} 截图如下: 接口继承了StatementTree接口,而实现类 ...
最新文章
- 【转载】图像缩放与插值理论基础
- 开机时没有显示Administrator
- kali linux 设置固定IP地址步骤
- 上传一批动画教程(链接已失效)
- Activity的启动流程
- leetcode529. 扫雷游戏(dfs)
- 查询各个科目成绩前三的记录
- 使用Java8改造出来的模板方法真的是yyds
- 基于springMVC的页面跳转、转发、重定向等
- ESS And 迅雷5 让我不能上网
- win10电脑显示无法自动修复此计算机,win10系统无法自动修复此计算机的操作步骤...
- ITIL4考试练习题
- ArcGIS中的GeoDatabase(地理数据库)功能,你可能不够了解
- html炫酷在线,html单页炫酷
- 100人PJ?へへ。バージョン1.0の反省書を書かなければなりません、今日。
- 自我救赎段子_为什么技术可以成为现代教育和学习的救赎之恩
- javaScript判断当前浏览器(谷歌、火狐、IE)兼容IE11
- 不填写内容用哪个斜杠代替_反斜杠
- 30个令人捧腹的关于码农和编程的笑话
- 微软 Azure人工智能认知服务打造语音提醒喝水助手(带源码和演示地址)