【Java初阶(一)】初识Java

❣博主主页: 33的博客

▶文章专栏分类: Java从入门到精通

🚚我的代码仓库: 33的代码仓库🚚

目录

1. 前言

这篇文章是我编程学习Java后的第一篇文章,虽然我现在的知识储备少,代码能力弱,但我相信明年的今天,我会有质的飞跃,也希望大家和我一起学习,一起加油!

本章重点:

本篇文章主要介绍java的概念,第一个Java程序,注释,标识符,数据类型,变量,掌握各种运算符等等。


2.Java的概念

Java是一种优秀的程序语言,Java语言具有以下特性

简单性、面向对象、分布式(微服务)、健壮性、安全性、 可移植性、 多线程性等等。


2.1第一个Java程序

java 复制代码
public class HelloWorld{
  public static void main(String[] args){
	System.out.println("Hello World");
  }
}	

1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。

2.类:类中带有一个或多个方法。方法必须在类的内部声明。

3.方法:在方法的花括号中编写方法应该执行的语句。


2.2运行java程序

  1. .使用记事本或者IDEA编写Java源程序
  2. 使用Javac 文件名.java编译生成xxx .class的字节码文件
  3. 使用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.常量

在程序运行期间,固定不变的量就称为常量:常量又可以分为以下几类

  1. 字符串常量:由""括起来的,比如"12345"、"hello"、"你好"。
  2. 整型常量:程序中直接写的数字(注意没有小数点),比如:100、1000
  3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49
  4. 字符常量:由 单引号 括起来的当个字符,比如:'A'、'1'
  5. 布尔常量:只有两种true和false

6. 数据类型

Java中数据类型可以分为基本数据类型和引用数据类型。

基本数据类型有以下4类:整型、浮点型、字符型、布尔型。


7. 变量

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等。对于这些经常改变的内容,在Java程序中,称为变量 。而数据类型就是用来定义不同种类变量的。

语法格式:

java 复制代码
数据类型 变量名=初始值;

7.1整型变量

7.1.1 整型变量

java 复制代码
//方法一:定义时候赋值
 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 长整型变量

java 复制代码
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 短整型变量

java 复制代码
short a=10;
// short型变量所能表示的范围:
System.Out.println(Short.MIN_VALUE);
System.Out.println(Short.MAX_VALUE);

short在任何系统下都占2个字节,赋值给变量时,不能超过它的取值范围 ,short的包装类型为Short。


7.1.4 字节型变量

java 复制代码
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双精度浮点型

java 复制代码
double b=3.14

接下来我们思考下列代码的结果是相同的吗?

java 复制代码
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 单精度浮点型

java 复制代码
float a=3.14;

同学们,想想这样定义对吗?实际上,这样定义是错误的,输入一个小数,计算机默认它的值都为double类型的,如果我们要定义float类型的,应该尾部加上f。

java 复制代码
float a = 3.14f; // 写作 1.0F 也可以

float在任何系统下都占4个字节,赋值给变量时,不能超过它的取值范围 ,float的包装类型为Float。


7.3字符类型

java 复制代码
char c1 = 'A'; // 大写字母
char c2 = '1'; // 数字字符
char c3 = '帅';//汉字字符

计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文。


7.4布尔类型

java 复制代码
boolean a = true;

boolean 类型的变量只有两种取值, true 表示真, false 表示假.Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法。


7.5 类型转换

Java作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验。

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类型

java 复制代码
int a=10;
long b=20;
int c=a+b;//int类型与long类型相加,会提升为long+long,再赋值给int类型的c,会造成数据丢失,会出现编译错误
long d=a+b;

再看一段代码:

java 复制代码
byte a = 10;
byte b = 20;
byte c = a + b;//编译报错,当计算的类型是小于int类型的时候,计算机会默认转换为int类型进行计算,再赋值给byte时会造成数据丢失

7.6字符串类型

java 复制代码
String s1 = "hello";
String s2 = " world";
System.out.println(s1+s2); //进行字符串拼接,输出hellowold

7.6.1int类型转换为String类型

java 复制代码
int a=10;
String str=a+"";//方法一
String str2=String.valueOf(a);

7.6.2String类型转换为int类型

java 复制代码
String str="10"
int a=Integer.parsenlnt(str);

8.运算符

什么是运算符呢?Java中运算符可分为以下:算术运算符(+ - * / %)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算。

8.1 算数运算符

就是基本的四则运算符:+ - * / %

java 复制代码
int a = 3;
int b = 2;
System.out.println(a + b); // 5
System.out.println(a - b); // 1
System.out.println(a * b); // 6
System.out.println(a / b); // 1,取整
System.out.println(a % b); //1,取模

值得注意的是:做除法和取模时,右操作数不能为0,% 不仅可以对整型取模,也可以对double类型取模,但是没有意义。


8.2自增自减运算符

前置++:先加1,再使用

后置++:先使用,再++

前置--:先减1,再使用

后置--:先使用,再--

java 复制代码
int a=3
b=a++//b的输出结果为3
b=++a//b的输出结果为4
b=a--//b的输出结果为3
b=--a//b的输出结果为2

8.3关系运算符

关系运算符主要有六个: == != < > <= >= ,其计算结果是 true 或者 false 。

java 复制代码
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

8.4逻辑运算符

逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
&&:

语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。两个表达式都为真,结果才为真
||:

语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。两个表达式至少有一个为真那么结果就为真。
! :

语法规则:! 表达式。真变假,假变真。

java 复制代码
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);//结果为假

接下来我们再看一段代码:

java 复制代码
System.out.println(10 > 20 && 10 / 0 == 0); // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0); // 打印 true

短路求值:

我们都知道, 计算 10 / 0 会导致程序抛出异常. 但是上面的代码却能正常运行, 说明 10 / 0 并没有真正被求值。对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值。


8.5移位运算符

移位运算符有三个: << >> >>> ,都是二元运算符,且都是按照二进制比特位来运算的。
左移<<:

最左侧不要,最右侧补0

java 复制代码
int a=10;
System.out.printf("%d\n", a << 1)//输出结果为20

右移>>:

最右侧位不要了, 最左侧补符号位(正数补0, 负数补)

java 复制代码
int a=-10;
System.out.printf("%d\n", a >>1)//输出结果为-5

无符号右移>>>:

最右侧位不要了, 最左侧补 0

java 复制代码
int a=-10;
System.out.printf("%d\n", a >>>1)//输出结果为2147483643
  1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
  2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
  3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
  4. 移动负数位或者移位位数过大都没有意义.

8.6条件运算符

格式:表达式1?表达式2:表达式3

表达式1为布尔类型,如果为真,返回表达式2,否则返回表达式3

java 复制代码
int a = 10;
int b = 20;
int c=a>b?a:b//表达式不能单独存在,其产生的结果必须要被使用。不能写成a>b?a:b

9.总结

这篇文章主要介绍了Java最基础的知识包括:注释,标识符,数据类型,变量,常量,各种运算符等等。

下期预告:分支与循环

相关推荐
一个不秃头的 程序员8 分钟前
代码加入SFTP JAVA ---(小白篇3)
java·python·github
susu108301891113 分钟前
python实现根据搜索关键词爬取某宝商品信息
爬虫·python
丁总学Java20 分钟前
--spring.profiles.active=prod
java·spring
上等猿27 分钟前
集合stream
java
java1234_小锋31 分钟前
MyBatis如何处理延迟加载?
java·开发语言
菠萝咕噜肉i32 分钟前
MyBatis是什么?为什么有全自动ORM框架还是MyBatis比较受欢迎?
java·mybatis·框架·半自动
喜欢猪猪40 分钟前
Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
android·python·adb
海绵波波10741 分钟前
flask后端开发(1):第一个Flask项目
后端·python·flask
林的快手1 小时前
209.长度最小的子数组
java·数据结构·数据库·python·算法·leetcode
FeboReigns1 小时前
C++简明教程(10)(初识类)
c语言·开发语言·c++