大家好,又见面了,我是你们的朋友全栈君。
Java的基本语法
Java注释
java中有三种注释
单行注释: //注释内容
多行注释:/* 注释内容 */
文档注释: /** 注释内容 */
其中文档注释可以利用javadoc.exe生成API文档
/* * 实现步骤: * 1.定义一个类 class * 2.编写程序执行的入口方法,main主方法 * 3.通过输出语句System.out.println()将信息”HelloWorld!”打印在控制台上 */ // 定义一个类 class class HelloWorld { // 编写程序执行的入口方法,main主方法 public static void main(String[] args) { // 通过Java提供的输出语句, 将信息”HelloWorld!”打印在控制台上 System.out.println("HelloWorld!"); } }
其实注释就是做记录解释代码,建议大家今后在编码时先写思路、分析、步骤、然后再写代码。把思路、分析、步骤使用注释放在源码中。
Java关键字
关键字是被java语言赋予了特殊含义,具有专门用途的单词。比如 public、class、static 等这些都是设定好的。
这些关键字需要背诵吗?
我们HelloWorld.java案例中用到过哪些关键字?
标识符
标识符就是名称的意思,所有的名称都统称为标识符。java中经常要定义类、方法、变量(后面会学习到),在定义它们时总要给他们取名字,这些名字就是标识符。
标识符组成元素:
*英文:a-zA-Z
*数字: 0-9
*符号: _ 与 $
标识符规则:
*不能以数字开头
*不可以使用关键字
*遵循驼峰法则,比如 HelloWorld
*尽量达到见名知意
数据
程序概述
软件是什么?
其实软件就是用来处理数据的。
软件的组成:
*数据
*处理数据的逻辑
程序 = 数据 + 逻辑
什么是数据?
用电商来举例子,用户是数据,商品也是数据。
处理数据的逻辑又是什么呢?
购买商品的过程就是处理数据的逻辑
程序的开发离不开数据,说白了程序就是处理数据的。通常数据会发生变化,而处理数据的逻辑不会发生改变。例如商品的数量、种类是会变化的,而买的流程是不会改变的。
数据类型
生活中的数据也是有类型的,例如 人名:汉字或者英文,年龄:数字
那么java中有哪些数据类型?他们分别是怎么表示的?
java是强类型语言,对每一种数据都对应了明确的数据类型。下面是java中的数据类型
基本数据类型是java语言中内置的类型,分别是 整数类型、小数类型、字符类型、布尔类型。这四类基本类型是最简单、最基础的类型。
引用数据类型是强大的数据类型,它是基于基本数据类型创建的。JavaSE中提供了一个超级类库,类库中包含了近万种引用数据类型。不过现在我们先要学习的是基本类型!
常量
Java中的数据量分为常量和变量,我们先来学习常量!
常量就是不变的数据量,例如666就是常量。任何数据量都有其类型,那么这个666又是什么类型呢?没错,就是整数类型!!!
*整数类型: 18 、666 、1888等
*小数类型: 1.8 、6.66、3.1415926等
*字符类型: ‘a’ 、’A’、’0′ 、‘中’等。(注意: 字符型是用 ‘ ‘ 包裹,并且里面只能写一个)
*布尔类型: true(真)、false(假)
*字符串类型: “我爱java”、“HelloWorld!!!”、“我爱编程,编程使我快乐!”
◾字符串String 是一种应用类型,我们先了解作为常量的使用方式
◾字符串必须用 ” ” 包裹,里面可以随意写东西
回顾我们HelloWorld案例,其中System.out.println(“HelloWorld!!!”)的圆括号里面是什么类型?
下面我们通过代码实际感受一下:
/* * 常量的演示 */ public class Demo{ public static void main(String[] args){ // 整数类型 System.out.println(666); System.out.println(1888); // 小数类型 System.out.println(1.8); System.out.println(3.1415926); // 布尔类型 System.out.prinltn(true);//真 System.out.println(false);//假 //字符类型 System.out.println('A'); System.out.println('中'); //字符串类型 System.out.println("我爱编程"); System.out.println("编程是我快乐"); } }
变量
变量的概述
前面我们已经学过了常量,现在来学习下变量。在java中变量的应用比常量应用要多很多,所以变量是非常重要的知识点!
什么是变量?
变量是一个内存中的小容器,什么是容器?例如 : 水杯是容器,用来装水;衣柜是容器,用来装衣服。那么变量是装什么的呢?答案是数据! 结论:变量是内存中装数据的小容器,你只能用它来存数据和取数据。
计算机的储存单元
变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机的存储设备最小信息单元叫”位(bit)”,我们又称之为”比特位“,通常用小写字母b表示。而计算机最小的存储单元叫”字节(byte)”,通常用大写字母B表示,1个字节由8个位组成。
操作系统分派的最小存储空间是1个字节,而不是1位。
计算机除了字节与位外还有哪些存储单位,大家一起来看看!
1B(字节) = 8 bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
基本类型之4类8种
衣柜不能用来装水,水杯也不能用来装衣服。这说明不同的容器装不同的物品。变量也是如此,在创建变量时需要指定变量的数据类型,例如 整型变量、浮点型变量等。
结论:变量必须要有明确的类型,什么类型的变量装什么类型的数据
水杯是用来装水的,那么装多少水呢?一吨?我们知道水杯在创建时不只确定了要装的是水(数据类型),而且还能确定装多少水(数据类型的具体种类)。变量也是如此,需要指定变量能装什么类型的数据,同时也要确定能装多大的数据
java的基本类型一共4类,把这四类展开以后就是8种基本数据类型,我们今后写程序时用的是这8种基本类型,这8种基本类型也指定了范围。
char 字符型 ,2个字节 ,用单引号表示 ‘ ‘ ,刚好容纳一个汉字,注意:里面只能放一个
boolean 布尔型 ,一个字节 0000 0001 最低为表示,取值(布尔值) :true(真) 和 false(假)
E : 123E5 = 123 * 10^5 = 12300000 , 123E-5 = 123 * 10^-5 = 0.0123
e : 自然常数,约 2.718281828
常量与类型
我们前面说666是整数常量,但它是byte、short、int、long里面的哪一种呢?下面我们就来聊聊这一常量类型的问题。
◾在Java中默认的整数类型是int类型
例如: 666 、 888
◾在Java中如果是long类型的值后面需要加L(大小写都可以,建议大写)
例如: 13456789123L 、100L
◾在Java中小数默认是double类型
例如: 1.888、3.123456
◾在Java中如果是float类型的值后面需要加上F(大小写都可以建议大写)
例如: 1.5F、6.8888F
定义变量(创建变量)
定义变量的语法:
数据类型 变量名 = 数据值;
int a = 100;(用分号结束)
解释int a = 100; 把值为100的整数赋值给变量a,其中100在int类型的取值范围以内。
练习:要求:写出代码运行起来,并且能够解释每行代码的意思。
public class Variable{ public static void main(String[] args){ int a = 100; System.out.println(a); double b = 7.89; System.out.println(b); char c = '猿'; System.out.println(c); String d = "今天,又是充满希望的一天!"; System.out.println(d); boolean e = true; System.out.println(e); } }
变量使用的注意事项:
局部变量
1.我们使用变量的时候要注意,要满足变量的使用规则我们才能使用
2.定义变量时可以先不赋值,使用时在赋值。不赋值不能使用
public class Demo2{ public static void main(String[] args){ int x;//先定义一个变量x x = 20;//把20赋值给这个x System.out.println(x);//这一步是打印x,这也就是在这一行用到了x } }
3.变量不可重复定义
public class Demo3{ public static void main(String[] args){ int i = 10; double i = 1.5;// 这里 i 就重复了,会发生编译错误 } }
数据类型转换
类型根据字节数由小到大排列:byte – short – int – float – long – double
两种转换方式:
1.显示转换(强制转换)
小范围数据类型 变量 = 大范围数据类型;
如:
int n = (int)6.7;
或者
double l = 3.14;
int t = (int)l;
强制转换注意: 需要在值的前面加上对应的数据类型
2.隐式转换(自动转换)
大范围数据类型 变量 = 小范围的数据类型;
如:
double d = 10000;
或者
int i = 100;
double d2 = i;
运算符
算术运算符
运算符 | 运算规则 | 范例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
+ | 加 | 2+3 | 5 |
+ | 连接字符串 | “中”+“国” | “中国” |
– | 负号 | int a=3;-a | -3 |
– | 减 | 3-1 | 2 |
* | 乘 | 2*3 | 6 |
/ | 除 | 5/2 | 2 |
% | 取模 | 5/2 | 1 |
++ | 自增 | int a=1;a++/++a | 2 |
— | 自减 | int b=3;a–/–a | 2 |
使用算术运算符时要注意:
1.加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串
public class Demo4{ public static void main(String[] args){ System.out.println("中" + "国");//打印出 中国 } }
2.除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除
System.out.println(3/2);// 1 System.out.println(3.0/2);//1.5
3.“%”取模(取余数),小数取余没有意义。结果符号与被取余符号相同
System.out.println(5%3);// 5 / 3 = 1 ... 2 所以结果时 2 System.out.println(3%5);// 一个小的数对一个大的数取模,就等于它本身 3
算术运算符 ++ , –的使用
我们来看一段代码
int a = 3; int b = 3; a++; b--; System.out.println(a);//4 System.out.println(b);//3
上面的代码输出结果a的值为4,b的值为2
这说明a与b的值在原有的基础上发生了改变,改变的值为1.
++运算符:会在原有值得基础上自增1
–运算符:会在原有值得基础上自减1
我们再来看一段代码
int a = 3; int b = 3; ++a; --b; System.out.println(a);//4 System.out.println(b);//3
上面的代码输出结果a的值为4,b的值为2
说明 ++,– 在单独使用并且不参与操作符时,不管在前还是在后结果是一样的。
接下来我们参与操作符
int a = 3; int b; b = a++ + 10; System.out.println(a);//4 System.out.println(b);//13
上面代码的输出结果a值为4,b值为13;
强调:当++,–运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1
再介绍下++,–运算符前置时,参与运算操作的变化,我们来看一段代码 :
int a = 3; int b; b = ++a + 10; System.out.println(a);//4 System.out.println(b);//14
强调: ++,–运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作
赋值运算符
我们来学习一下赋值运算符,赋值运算符就是为变量赋值的符号,赋值运算符的使用看下图:
运算符 运算规则 范例 结果 = 赋值 int a=2 2 += 加后赋值 int a=2,a+=2 4 -= 减后赋值 int a=2,a-=2 0 *= 乘后赋值 int a=2,a*=2 4 /= 整除后赋值 int a=2,a/=2 1 %= 取模后赋值 int a=2,a%=2 0 注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。
写一个代码,我们看一下赋值运算符的使用
/* * 赋值运算符 * +=, -=, *=, /=, %= : * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的 * 注意:赋值运算符左边必须是变量 */ public class Demo5{ public static void main(String[] args) { byte x = 10; x += 20;// 相当于 x = (byte)(x+20); System.out.println(x);// 30 } }
比较运算符
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false 。
运算符 运算规则 范例 结果 == 相等于 4==3 False != 不等于 4!=3 True < 小于 4<3 False > 大于 4>3 True <= 小于等于 4<=3 False >= 大于等于 4>=3 True 这里需要注意一下:
*赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下:
1.赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
2.比较运算符的 == 符号,是用来判断== 符号左右变量的值是否相等的
我们通过下面的一段代码,我们演示一下这个注意事项 :
int a = 3; int b = 4; System.out.println( a=b );// 4 System.out.println( a==b );// true
逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false
运算符 运算规则 范例 结果 & 与 false&true False | 或 false|true True ^ 异或 true^flase True ! 非 !true Flase && 短路与 false&&true False || 短路或 false||true True 看完图后,我们来看一下逻辑运算符的常规使用方式:
1.逻辑运算符通常连接两个其他表达式计算后的布尔值结果
2.当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断
我们通过代码演示一下:
boolean b = 100>10; boolean b2 = false; System.out.println(b&&b2); // 打印结果为 false System.out.println(b||b2); //打印结果为 true System.out.println(!b2); //打印结果为 true System.out.println(b && 100>10); //打印结果为 true,本行结果的计算方式稍后讲解运算符优先级时解答
好了,我们来总结一下运算符的结果规律吧 :
1.短路与&&:参与运算的两边数据,有false,则运算结果为false
2.短路或||:参与运算的两边数据,有true,则运算结果为true
3.逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true
进制转换
二进制
八进制
十六进制
位运算
左移 : <<
int a = 4 << 2; // 4 * 2^2 = 16 int b = 8 << 3; // 8 * 2^3 = 64 // 总结: int x = y << z 时相当于 y * 2^z
右移: >>
int a = 4 >> 2; // 4 / 2^2 = 1; int b = 8 >> 3; // 8 / 2^3 = 1; // 总结 : int x = y >> z 时相当于 y / 2^z
无符号运算 >>>
int a = 4; System.out.println(a >>> 2); // 1 int b = -4; System.out.println(b >>> 2); // 1073741823 源码 1000 0000 0000 0000 0000 0000 0000 0100 反码(高位不变低位相反) 1111 1111 1111 1111 1111 1111 1111 1011 补码 (反码 + 1) 1111 1111 1111 1111 1111 1111 1111 1100 右移两位 0011 1111 1111 1111 1111 1111 1111 1111 直接计算移动后的值 2 ^ 29 + 2^28 + 2^27 + ...+ 2^0
三元运算符(三目运算)
接下来我们要学习的三元运算符与之前的运算符不同。之前学习的均为一元或者二元运算符。元即参与运算的数据
格式:
数据类型 变量名 = (条件表达式)?表达式1:表达式2;
表达式:通俗的说,即通过使用运算符将操作数联系起来的式子,例如 :
1.3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式
2.3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式
三元运算符运算规则:
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2
通过代码演示,我们来学习下三元运算符的使用 :
方式一: System.out.println( 3>2 ? “正确” : “错误” ); // 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印 方式二: int a = 3; int b = 4; String result = (a==b) ? “相等” : “不相等”; System.out.println(result); //三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result 方式三: int n = (3>2 && 4>6) ? 100 : 200; System.out.println(n); //三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n
小练习:
1.A和B点相距500公里,同时从A和B对向各开出1列火车,经过30分钟后,在距离A和B的中点50公里的地方相遇。问A火车和B火车的速度各为多少公里每小时 2.一缸水,用去二分之一和5桶,还剩下30%,问这缸水有多少桶 3.一根钢管长10米,第一次截去十分之七,第二次又截去剩下的三分之一,问还剩下多少米 4.修筑一条公路,完成了全长的三分之二后,距离中间点为16.5千米,这条公路全长多少千米 5.山羊有50只,绵羊比山羊的五分之四多3只,问绵羊多少只 6.输入圆的半径,求这个圆的周长和面积 7.输入正方体的边长,求体积和表面积 8.问题:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?”
转载于:https://www.cnblogs.com/zcq-Test/p/10646629.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106892.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...