什么是java

java是一门高级编程语言,1995年发布,由Sun,orcale公司,具有可移植性,安全可靠,性能较好的特点。

Java技术体系平台

Java版本区分
技术平台 说明
Java SE(Java Standard Edition) 标准版
Java技术的核心和基础,是学习Java EE,JavaME的基础,也是我们近期重点学习的
技术。支持开发桌面级应用(如Windows下的应用程序)的Java平台
Java EE(Java Enterprise Edition)企业版
为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发,
多用于大型网站开发,是我们后期重点学习的技术。
Java ME(Java Micro Edition)小型版
是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,现在移
动终端基本上都是使用Android和IOS的技术平台了。
Java Card
支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台 ,此技术
也被广泛运用在SIM卡、提款卡上。

如何使用java

Java语言的产品是 JDK(Java Development Kit :Java开发者工具包) ,必须安装JDK才能使用Java语言。

如何获取JDK

https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
下载对应版本
使用Win+r输入cmd
然后输入命令
java -version
javac -version
查看是否安装成功以及版本

常用命令

常用命令

常用命令 作用
D: C:
切换到某个盘下
dir 查看当前路径下的全部内容
cd 目录 进入单级目录: cd itheima
cd 盘符:\目录1\目录2\... 进入多级目录: cd C:\itheima\JavaSE\第一天
cd .. 回退到上一级目录
cd \ 回退到盘符目录
cls
清屏
exit
退出命令提示符窗口
Java 程序开发的三个步骤
编写代码 编译代码 运行代码

代码测试Helloworld

public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
} }

编程语言发展历程

  1. 机器语言
  2. 汇编语言
  3. 高级语言
JDK 、JRE的关系

JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方。

核心类库:java自己写好的程序,给程序员自己的程序调用。

JRE(Java Runtime Environment): Java运行时环境。只包含java虚似机、以及java帮我们写好的程序等java运行所需的东西。

JDK(Java Development Kit): Java开发工具包。包含java编译器、java虚似机、以及java帮我们写好的程序...等所有需要的东西。

Java_Home配置

JAVA_HOME告诉操作系统JDK安装在了哪个位置(未来其他技术要通过这个找JDK)
环境变量的位置在:我的电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量。

放在用户变量时候是只能当前用户使用

放在系统变量时候是当前电脑的所有用户均可使用

环境变量配置的作用是为了,在命令提示窗口下的任意位置都可启用你配置变量对应的值

选择新建

变量名:JAVA_HOME
变量值:C:\soft\java\jdk-17
变量值要根据自己的安装路径填写

Path配置

Path告诉操作系统JDK提供的javac(编译)、java(执行)命令安装到了哪个位置

注意:新版本的JDK只是自动配置了Path,没有自动配置JAVA_HOME。

点击已有的Path点击编辑再点击新建

Path         C:\soft\java\jdk-17\bin
或者
Path         %JAVA_HOME%\bin
使用第二种当更新JDK时候只需修改JAVA_Home即可
第一种路径名称设置JDK安装的路径

配置完成后使用cmd加java -version和javac -version来检查是否配置成功

安装编程软件

Eclipse MyEclipse IDEA等等

IDEA安装idea破解免费安装图文教程_The best are water的博客-CSDN博客_idea免费安装

以下以IDEA项目为例子

IDEA项目结构介绍
  1. project(项目、工程)--小区
  2. module(模块)--单元
  3. package(包)--楼
  4. class(类)--户

IDEA新建模块

File->NEW->Module

创建Package

鼠标右键src

New->Package

创建类

New->Java Class

写内容时候

IDEA:main回车sout回车分别出现主函数和输出函数

Eclipse:main后点击Alt+/ sysout后点击ALt+/

部分常用快捷键

  • Crtl+D 复制当前行到下一行(大部分应用是删除当前行)
  • Crtl+Alt+L 格式化代码
  • Alt+Shift+PageUp or PageDown 代码上下移动
  • Crtl+/ 单行注释(//内容)
  • Crtl+Shift+/ 多行注释(注释一块/* 内容 */)

修改模块

Refactor-Rename

一般选择Rename Moduel and Directory这样会修改文件夹名称,避免出现感觉模块找不到对应文件夹的情况

导入模块

导入模块时候,要选择文件夹里面的.iml结尾的文件,不要只选项目(这是关联导入,源文件被删除,会出错)

建议新建个模块,然后直接复制进去(IDEA确实比Eclipse方便啊!!)

删除模块

如果使用的是remove,只是IDEA中删除掉了

绝对删除要先点击模块,然后右键点击delete(左上角的hello-app),如果重新创建同名会出现错误,记得重新启动IDEA,这样重新创建同名就可以了。

类型默认值

下表列出了 Java 各个类型的默认值:

数据类型 默认值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char 'u0000'
String (or any object) null
boolean false

注意:随便写一个整数自面量默认是int类型,13333121212231虽然是没有超过long的范围,但是它超过了本身的int类型的表示范围。如果希望被当成long类型,就要在后面加l/L。

long Lg = 13212312312123L;

float类型也是同样的道理,加F/f。

自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量。

表达式中的最终结果类型由表达式中的最高类型决定。

byte,short,char是直接转换成int参与运算的。

byte->short->int->long->float->double

char->int..

强制类型转换

数据类型 变量2 = (数据类型) 变量1

int a = 10;
byte b = (byte)a;

强制类型转换可能造成数据(丢失)溢出。

运算符

算数运算符

算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。

表格中的实例假设整数变量A的值为10,变量B的值为20:

操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A – B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21(区别详见下文)
-- 自减: 操作数的值减少1 B-- 或 --B 等于 19(区别详见下文)

关系运算符

下表为Java支持的关系运算符

表格中的实例整数变量A的值为10,变量B的值为20:

运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。
检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)为假。
检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)为真。

位运算符

Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。

下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:

操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<<  按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>>  按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>>  按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111

逻辑运算符

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。

赋值运算符

下面是Java语言支持的赋值运算符:

操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
&= 按位与赋值运算符 C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2

条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:

( Object reference variable ) instanceof  (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

下面是一个例子:

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

Java运算符优先级

当多个运算符出现在一个表达式中,谁先谁后呢?这就涉及到运算符的优先级别的问题。在一个多运算符的表达式中,运算符优先级不同会导致最后得出的结果差别甚大。

例如,(1+3)+(3+2)*2,这个表达式如果按加号最优先计算,答案就是 18,如果按照乘号最优先,答案则是 14。

再如,x = 7 + 3 * 2;这里x得到13,而不是20,因为乘法运算符比加法运算符有较高的优先级,所以先计算3 * 2得到6,然后再加7。

下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。

类别 操作符 关联性
后缀 () [] . (点操作符) 左到右
一元 expr++ expr-- 从左到右
一元 ++expr --expr + - ~ ! 从右到左
乘性  * /% 左到右
加性  + - 左到右
移位  >> >>>  <<  左到右
关系  > >= < <=  左到右
相等  ==  != 左到右
按位与 左到右
按位异或 ^ 左到右
按位或 | 左到右
逻辑与 && 左到右
逻辑或 | | 左到右
条件 ?: 从右到左
赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左
逗号 左到右

2022Java笔记相关推荐

  1. 2022Java学习笔记八十八(网络编程:UDP通信,一发一收,多发多收消息接收实现)

    2022Java学习笔记七十八(网络编程:UDP通信,一发一收,多发多收消息接收实现) 一.快速入门 DatagramPacket:数据包对象 实例代码 定义发送端 package com.zcl.d ...

  2. 2022Java学习笔记七十三(异常处理:运行时异常、编译时异常、异常的默认处理的流程)

    2022Java学习笔记七十三(异常处理:运行时异常.编译时异常.异常的默认处理的流程) 一.异常体系 1.Exception:java.lang包下,称为异常类,它表示程序本身可以处理的问题 2.R ...

  3. 2022Java面试笔记(上)

    2.Java四种引用(强.软.弱.虚) 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. Java中 ...

  4. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  5. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  6. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  7. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  8. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  9. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. 使用golang求出A-Z的所有子集
  2. 成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr
  3. 谈谈如何学习flutter之flutter成神之路
  4. Spark写Redis+Spark资源配置总结
  5. String() 函数把对象的值转换为字符串。
  6. 吃饭/训觉-工作室应用隐私政策
  7. Python html 代码转成 word(docx)
  8. Spring IOC容器-Bean管理——基于XML方式
  9. 诗与远方:无题(十六)
  10. POJ-1328(Greedy,Vector,Sort,Iterator)
  11. linux qt遍历设备,Qt获取设备环境变量
  12. 我成功通过PMP考试的经验与体会
  13. 图案怎么导入ps?Photoshop图案导入教程
  14. CI框架实现框架前后端分离的方法详解:把前端代码统一管理
  15. Powerbuilder webform,webservices 倍力文档在线查看
  16. 纬地道路纵断面设计教程_道路BIM模型快速生成
  17. 使用nginx配置子域名
  18. Ubuntu安装lightdm重启后黑屏
  19. java实现动态规划算法解决存钱罐问题(piggy bank)
  20. 弥豆子 重建 二叉树

热门文章

  1. HBuilder创建App并打包发布
  2. Fairy tale(BFS + 大模拟)
  3. 塞规公差带图_塞规和卡规公差表
  4. 离职,我应该做什么?
  5. php让浏览器全屏,H5实现浏览器全屏API(全屏进入和全屏退出)
  6. 科技爱好者周刊(第 160 期):中年码农的困境
  7. 文件夹里面的文件批量改名字
  8. 创新趋势 | SaaS增长新趋势:产品驱动增长PLG(上)
  9. mysql1526_MySQL数据库插入数据出现 ERROR 1526 (HY000): Table has no partition for value xxx
  10. 新版悟能口罩预约小程序源码V1.1.1