❣博主主页: 33的博客❣
▶文章专栏分类: Java从入门到精通◀
?我的代码仓库: 33的代码仓库?
目录
1. 前言2.Java的概念2.1第一个Java程序2.2运行java程序 3.注释4. 标识符5.常量6. 数据类型7. 变量7.1整型变量7.1.1 整型变量7.1.2 长整型变量7.1.3 短整型变量7.1.4 字节型变量 7.2浮点型变量7.2.1双精度浮点型7.2.2 单精度浮点型 7.3字符类型7.4布尔类型7.5 类型转换7.5.1 类型提升 7.6字符串类型7.6.1int类型转换为String类型7.6.2String类型转换为int类型 8.运算符8.1 算数运算符8.2自增自减运算符8.3关系运算符8.4逻辑运算符8.5移位运算符8.6条件运算符 9.总结
1. 前言
这篇文章是我编程学习Java后的第一篇文章,虽然我现在的知识储备少,代码能力弱,但我相信明年的今天,我会有质的飞跃,也希望大家和我一起学习,一起加油!
本章重点:
本篇文章主要介绍java的概念,第一个Java程序,注释,标识符,数据类型,变量,掌握各种运算符等等。
2.Java的概念
Java是一种优秀的程序语言,Java语言具有以下特性
简单性、面向对象、分布式(微服务)、健壮性、安全性、 可移植性、 多线程性等等。
2.1第一个Java程序
public class HelloWorld{ public static void main(String[] args){System.out.println("Hello World"); }}
1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
2.类:类中带有一个或多个方法。方法必须在类的内部声明。
3.方法:在方法的花括号中编写方法应该执行的语句。
2.2运行java程序
.使用记事本或者IDEA编写Java源程序使用Javac 文件名.java编译生成xxx .class的字节码文件使用Java xxx运行字节码文件3.注释
Java中的注释主要分为以下三种
单行注释:// 注释内容
多行注释:/* 注释内容*/
文档注释: /** 文档注释 */
4. 标识符
标识符其实就是:在程序中由用户给类名、方法名或者变量所取的名字
标识符中可以包含:字母、数字、_ 、$注意:标识符不能以数字开头,也不能是关键字,要严格区分大小写
例:下面那些标识符是合法的?
A:class B:HelloWorld C:main D:123abc E:ARRAY_SIZE F: $name G: name:jim
A是关键字,错误。D以数字开头,错误。G中有冒号,错误。
java中有很多关键字,关键字是由Java语言提前定义好的,有特殊含义的标识符,或者保留字,下面列举部分
5.常量
在程序运行期间,固定不变的量就称为常量:常量又可以分为以下几类
字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。整型常量:程序中直接写的数字(注意没有小数点),比如:100、1000浮点数常量:程序中直接写的小数,比如:3.14、0.49字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’布尔常量:只有两种true和false6. 数据类型
Java中数据类型可以分为基本数据类型和引用数据类型。
基本数据类型有以下4类:整型、浮点型、字符型、布尔型。
7. 变量
在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等。对于这些经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。
语法格式:
数据类型 变量名=初始值;
7.1整型变量
7.1.1 整型变量
//方法一:定义时候赋值 int a=10; System.out.println(a); //方法二:使用时赋值,如果不赋值会编译错误 int a; a=10; System.out.println(a); //int类型的取值范围 System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE);
int类型在任何系统下都是4个字节,赋值给变量时,不能超过它的最大范围,int的包装类型为Integer。
7.1.2 长整型变量
long a=10L;//为了区分int和long类型,一般在long类型变量之后加L或者l(但与1类似不建议)//long类型的取值范围System.Out.println(Long.MIN_VALUE);System.Out.println(Long.MAX_VALUE)
long类型在任何系统下都是8个字节,赋值给变量时,不能超过它的最大范围,long的包装类型为Long。
7.1.3 短整型变量
short a=10;// short型变量所能表示的范围:System.Out.println(Short.MIN_VALUE);System.Out.println(Short.MAX_VALUE);
short在任何系统下都占2个字节,赋值给变量时,不能超过它的取值范围 ,short的包装类型为Short。
7.1.4 字节型变量
byte a =10;// byte型变量所能表示的范围:System.Out.println(Byte.MIN_VALUE);System.Out.println(Byte.MAX_VALUE);
byte在任何系统下都占1个字节,赋值给变量时,不能超过它的取值范围 ,byte的包装类型为Byte。
7.2浮点型变量
7.2.1双精度浮点型
double b=3.14
接下来我们思考下列代码的结果是相同的吗?
int a=1;int b=2;System.out.println(a/b);//输出0,如果想输出0.5该如何该呢?如下double c=1.0;System.out.println(c/b);//输出0.5
double在任何系统下都占8个字节,赋值给变量时,不能超过它的取值范围 ,double的包装类型为Double。
7.2.2 单精度浮点型
float a=3.14;
同学们,想想这样定义对吗?实际上,这样定义是错误的,输入一个小数,计算机默认它的值都为double类型的,如果我们要定义float类型的,应该尾部加上f。
float a = 3.14f; // 写作 1.0F 也可以
float在任何系统下都占4个字节,赋值给变量时,不能超过它的取值范围 ,float的包装类型为Float。
7.3字符类型
char c1 = 'A'; // 大写字母char c2 = '1'; // 数字字符char c3 = '帅';//汉字字符
计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文。
7.4布尔类型
boolean a = true;
boolean 类型的变量只有两种取值, true 表示真, false 表示假.Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。
7.5 类型转换
Java作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。
int a=10;long b=100;b=a;//int类型赋值给long类型,可以编译成功a=b;//long类型赋值给int类型,编译不成功a=(int)b//强制数据类型转换,可能会造成数据丢失
7.5.1 类型提升
int 与long之间,int类型会被提升为long类型
int a=10;long b=20;int c=a+b;//int类型与long类型相加,会提升为long+long,再赋值给int类型的c,会造成数据丢失,会出现编译错误long d=a+b;
再看一段代码:
byte a = 10;byte b = 20;byte c = a + b;//编译报错,当计算的类型是小于int类型的时候,计算机会默认转换为int类型进行计算,再赋值给byte时会造成数据丢失
7.6字符串类型
String s1 = "hello";String s2 = " world";System.out.println(s1+s2); //进行字符串拼接,输出hellowold
7.6.1int类型转换为String类型
int a=10;String str=a+”“;//方法一String str2=String.valueOf(a);
7.6.2String类型转换为int类型
String str="10"int a=Integer.parsenlnt(str);
8.运算符
什么是运算符呢?Java中运算符可分为以下:算术运算符(+ - * / %)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算。
8.1 算数运算符
就是基本的四则运算符:+ - * / %
int a = 3;int b = 2;System.out.println(a + b); // 5System.out.println(a - b); // 1System.out.println(a * b); // 6System.out.println(a / b); // 1,取整System.out.println(a % b); //1,取模
值得注意的是:做除法和取模时,右操作数不能为0,% 不仅可以对整型取模,也可以对double类型取模,但是没有意义。
8.2自增自减运算符
前置++:先加1,再使用
后置++:先使用,再++
前置–:先减1,再使用
后置–:先使用,再–
int a=3b=a++//b的输出结果为3b=++a//b的输出结果为4b=a--//b的输出结果为3b=--a//b的输出结果为2
8.3关系运算符
关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。
int a = 10;int b = 20;// 注意:在Java中 = 表示赋值,要与数学中的含义区分// 在Java中 == 表示相等System.out.println(a == b); // falseSystem.out.println(a != b); // trueSystem.out.println(a < b); // trueSystem.out.println(a > b); // falseSystem.out.println(a <= b); // trueSystem.out.println(a >= b); // false
8.4逻辑运算符
逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
&&:
语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。两个表达式都为真,结果才为真
||:
语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。两个表达式至少有一个为真那么结果就为真。
! :
语法规则:! 表达式。真变假,假变真。
int a = 1;int b = 2;System.out.println(a == 1 && b == 1); //左为真 但 右为真假则结果为假System.out.println(a == 1 || b == 1); //左为真 但 右为真假则结果为真System.out.println(a != 1);//结果为假
接下来我们再看一段代码:
System.out.println(10 > 20 && 10 / 0 == 0); // 打印 falseSystem.out.println(10 < 20 || 10 / 0 == 0); // 打印 true
短路求值:
我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值。对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。
8.5移位运算符
移位运算符有三个: << >> >>> ,都是二元运算符,且都是按照二进制比特位来运算的。
左移<<:
最左侧不要,最右侧补0
int a=10;System.out.printf("%d\n", a << 1)//输出结果为20
右移>>:
最右侧位不要了, 最左侧补符号位(正数补0, 负数补)
int a=-10;System.out.printf("%d\n", a >>1)//输出结果为-5
无符号右移>>>:
最右侧位不要了, 最左侧补 0
int a=-10;System.out.printf("%d\n", a >>>1)//输出结果为2147483643
左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.移动负数位或者移位位数过大都没有意义. 8.6条件运算符
格式:表达式1?表达式2:表达式3
表达式1为布尔类型,如果为真,返回表达式2,否则返回表达式3
int a = 10;int b = 20;int c=a>b?a:b//表达式不能单独存在,其产生的结果必须要被使用。不能写成a>b?a:b
9.总结
这篇文章主要介绍了Java最基础的知识包括:注释,标识符,数据类型,变量,常量,各种运算符等等。
下期预告:分支与循环