java的注释、关键字、标识符、变量常量、数据类型、运算符、流程控制等

                      java的注释、关键字、标识符、变量常量、
                            数据类型、运算符、流程控制等

1. java概述

1.1 java的技术体系

                      Java SE:是Java的标准版,提供了完整的java核心API。

                      Java EE:是Java的企业版,主要用于开发企业级分布式网络程序系统,核心为EJB(企业Java组件模型)。

                      Java ME:主要用于嵌入式系统开发。

1.2 Java语言特点

                      (1)简单性:语言省略所有难以理解和困惑的特点在C++语言,如头文件、指针、结构、单元、运算符重载、虚拟基础类,等它更简洁严谨;

                      (2)面向对象:两个基本概念“类”和“对象”;三大特征“封装”,“继承”,“多态”;

                      (3)跨平台性:自带解释器,在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机,在不同的系统平台上都可以运行;

                      (4)既是编译执行的语言,也是解释执行的语言:源文件通过编译,形成一个文件(不是二进制文件),而是“字节码的文件.class”,这个自节码文件是跨平台 的文件(java的内部会有自己的解释器(虚拟机)),使用自带的“解释器”解释执行.class。

 

2. Java程序的编写流程

2.1 Java应用程序的编写流程如下:

                      (1)编写源文件:编写Java源文件,他的扩展名为.java;

                      (2)编译:通过编译器把源文件编译成字节码文件,字节码文件的扩展名为.class;

                      (3)运行:使用解释器来运行字节码文件

2.2 源文件代码编写

                      在e盘下新建一个文本文档,文件名为MyFirstCode.java,内容如下:

public class MyFirstCode {public static void main(String[] args) {System.out.println("This is my fisrt code");}
}

2.3 编译源代码文件

                      编译操作需要使用编译器来完成,它属于JDK的一部分,在安装JDK的时候已经安装好了,位置位于JDK的bin目录             下的javac.exe,使用DOS命令来运行它,如下图。

                     

                     在编译时控制台上不会有输出,如果有输出说明源代码有错误,所以大家一旦编译出错,就要去查看源文件中是否           存在错误,正确编译后会在源文件同目录下生成字节码文件,扩展名为.class。

                                 

2.4 运行字节码文件

                      运行字节码文件需要使用java.exe命令,它与javac.exe在同一目录下,运行字节码文件与编译不同的是需要进入到           字节码文件所在的目录,并且在运行字节码文件是不要加扩展名,运行如下图。

                     

2.5 简化编译和运行操作

                      可以发现每次程序编译与运行都要输入E:\ProgramFiles\jdk-8u144\bin后,才能使用javac.exe与java.exe,这样的           方式很麻烦,通过通过配置Windows的PATH环境变量就可以在不同位置编译运行。

                      配置PATH环境变量:鼠标右键点击计算机  →  属性  →  高级系统设置  →  点击环境变量  →  找到系统变量中的           PATH  →  点击编辑按钮。将JDK安装目录\bin路径(我的电脑上的E:\ProgramFiles\jdk-8u144\bin)配置到PATH变量中,用         英文分号与其他变量隔开。还可如下配置环境变量:

                      (1)创建变量:变量名为:JAVA_HOME 变量值:安装JDK的目录;

                      (2)修改Path变量:在末尾添加信息:   ;%JAVA_HOME%\bin;

                      (3)配置classpath:  .;%JAVA_HOME%\lib\tools.jar。

 

3. 注释

Java中提供了三种注释方式,分别是:

                      (1)单行注释    //注释内容

                      (2)多行注释    /*注释内容*/

                      (3)文档注释 /**注释内容*/

文档注释的使用:javadoc –d 生成目录 –version –author 类名

4. 关键字

关键字是被Java语言赋予特殊含义,具有专门用途的单词,Java中的关键字均为小写关键字如下:

                                       

5. 标识符

5.1 定义

                      在Java程序中,其实标识符就是名称的意思,除了关键字以外基本上都是标识符了,在定义类、方法、变量时总               要给它们起名字,这些名字就是标识符。

5.2 组成元素

                      (1)英文字母: a-zA-Z

                      (2)数字:0-9

                      (3)符号:_和$

5.3 规则

                      (1)不能以数字开头;

                      (2)不可以使用关键字

                      (3)严格区分大小写

 

6. 变量与常量

6.1 常量

                      在程序运行过程中一直不会改变的的量称为常量,通常也被称为“final变量”,。常量在整个程序中只能被赋值                     一 次。在Java中声明一个常量除了要指定数据类型外。还需要通过final关键字进行限定,语法如下:

                      final 数据类型 常量名 [ = 值 ]

                      常量名通常使用大写字母,但这并不是必须的,是为了清除的表名变量。

        6.2 变量

                      在程序运行过程中其值能被改变的量称为变量,可以看成是存储数据的“盒子”。定义变量就是要告诉编译器这个变            量的数据类型,这样编译器才知道要分配多少内存给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是            变化的,这个内存空间就称为变量。内存空间内的值就是变量值。语法如下:

                      变量类型  变量名  [ =  变量值]              []中的叫做变量的初始化

                      内存分配方式:

                                 (1)基本数据类型:占用一块内存,如局部变量int i=1;在内存里面只分配了一块内存,里面存放的就是值                        1,储到栈内存中,使用i这个名字来访问这块内存。

                                 (2)引用数据类型:占用两块内存,如 String s此时为引用变量s分配了一块内存,但是目前这个内存什么                        也没有存,因为此时s不指向任何一个对象,所以是null。当s=new String(“hi”)使用new创建了一个对象后,又分配                        一块内存(堆),这个对象的内容“hi”就存放在新分配的内存中。而之前给s分配的内存也有了内容,根据这                                 个内容就可以找到第二块内存,使用其中的内容(“hi”)

7. 数据

7.1 数据类型

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

                      引用数据类型(无限个数):类,接口,数组 ,String 等(它用双引号)

        7.2 数据类型分类

四类八种字节数范围
整型byte1-2^7~2^7-1
short2-2^15~2^15-1
int4-2^31~2^31-1
long8-2^63~2^63-1
浮点型float4

              -3.403E38~3.403E38

double8

             -1.798E308~1.798E308

字符型char2

                    表示一个字符

布尔型boolean1

              只有两个值true与false

 

        7.3 类型的转换

                2.2.1.高低的级别:

                      byte,short,char=>int=>long=>float=>double其中,boolean类型不能跟其他类型之间做转换。

                2.2.2.自动类型转换(隐式转换,宽向型转换):

                        将第类型赋值给高类型,如:Short s=10;Int i=20;i=s;

                2.2.3.强制类型转换:

                        将高类型赋值给低类型,需要强制装换,格式:低类型  变量=(低类型)变量。

                        注意:强制类型转换可能会丢失精度,代码如下

                        int i = 357;                             //4字节  32位的二进制数

                        byte b = (byte)i;                     //1字节 8位的二进制

                        System.out.println(b);            // 结果为101

                2.2.4.字符串和其它类型转换:

                      字符串和其它类型转换会提升成String类型

8. 运算符

        8.1 算术运算符

               

运算符运算规则范例结果
+拼接字符串"拼" + "接"拼接
+正号+11
+1+23
-负号-1-1
-2-11
*1*22
/5/22
%取余3/21
++自加

              int a=1;

             a++/++a

2
--自减

              int b=3;

               a--/--a

         2

                注意:%取余操作和取模操作的区别,在于商:取余操作:商向0取整;模操作:商向下取整

                           ++:前置++  后置++:无论是前置还是后置,都对原来的变量进行+1, 对于表达的结果不同,后置++(会缓                              存变量之前的值)指向的是变量+1之前的结果。

        8.2 赋值运算符

 

运算符运算规则范例结果
=赋值int i=2;2
+=加后赋值int i= 2,i+=13
-=减后赋值int i= 2,i-=11
*=乘后赋值int i= 2,i*=12
/=除后赋值int i= 2,i/=12
%=取余后赋值int i= 2,i/=10

               

        8.3 比较(关系)运算符

               

运算符运算规则范例结果
==相等于2==2;True
!=不等于2!=2;False
<小于2<1False
>大于2>1True
<=小于等于2<=1False
>=大于等于2>=1True

 

                注意:==如果两侧都是基本数据类型,则比较的是值大小;如果两侧都是引用类型,则比较的是地址是否是同一个

        8.4 逻辑运算符

           

运算符运算规则范例结果
&false&trueFalse
|false|trueTrue
!trueFalse
^异或false^trueTrue
&&短路与false&&trueFalse
||短路或false||trueTrue

 

                短路现象:&& 第一个表达式为false,则后面的表达式不执行

                                  || 第一个表达式为true,则后面表达式不执行

        8.5 位运算符

               

         符号

运算规则范例

        结果

          >> 

右位移

         12 >> 2

         3

          <<   

左位移

         12 << 2

         48

         >>>  

无符号右位移

         12>>> 2

          3

           &  

 按位与

         12 & 9

          8

          |  

按位或

         12| 9

         13

            ^   

按位异或

         12^ 9

          5

 

                位运算符是对于补码进行的按位操作:

                                 &  :如果两个都是1,则返回1,否则返回0

                                 |  :  如果两个都是0,则返回0,否则返回1

                                 ^  :  如果两个相同,则返回0,否则 ,返回1

                                 ~ :一元运算符,对于某一个数的补码进行按位取反,包括符号位。

        8.6 三元运算符

               

                语法: 条件表达式?值1:值2

                规则:如果条件表达式返回为真,取值1,否则取值2;值1表达式的类型和值2的表达式类型一致

        8.7 运算符的优先级

优先级描述运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

 

                优先级:  ()调整优先级

                                大体遵循规则:

                                算术运算符> 比较运算符 > 位运算符> 逻辑运算符> 赋值运算符

                                !优先级别最高

               

9. 流程控制

9.1 顺序结构

                      程序从上到下,从左到右执行。

9.2 分支结构

                      if结构语法,有3种如下:

                                (1) if(条件表达式){

                                                     //执行语句

                                           }

int i = 2;
if(i == 2) {System.out.println(i);
}

                                (2) if(条件表达式){

                                                     //执行成立语句1

                                           }else {

                                                     //执行不成立语句2

                                           }

int x = 5;
int y = 2;
if(x==3) {y = x + y;
}else {y = x - y;
}
System.out.println(y);

                                (3) if(条件表达式1){

                                                     //执行语句2

                                           }else if(条件表达式2){

                                                     //执行语句2

                                           }else {

                                                     //执行语句3

                                           }

int x = 10;int y = 0;if(x>=3) {y = 2 * x + 1;}else if(-1<x && x<3){y = 2 * x;}else if(x<=-1){y = 2 * x - 1;}	System.out.println(y);
}

                      注意:(1)分支语句中执行语句只有一个表达式可以省略大括号,否则不能省略。

                                 (2)多分支语句中将条件范围小的放在最前面;如果前面的条件成立,后面的条件即使成立也不执行。

                      switch结构语法:

                                switch(变量/常量){

                                           case 值1:

                                                      //执行1;

                                           break;

                                           case 值2:

                                                      //执行2;

                                           break;

                                          ......

                                           defualt:

                                                      //执行3;

                                           break;

                                }

                      注意:(1)变量/常量的类型只能是:byte,short,int,char,String(jdk1.7后),枚举;

                                 (2)当省略break时,顺序从满足条件的语句从上到下执行,与case无关;

                                 (3)case块中的值是唯一的,并且是等值比较的。

int score = 99;
switch (score / 10) { case 9:case 10:System.out.println("A");break;case 8:System.out.println("B");break;case 7:System.out.println("C");break;case 6:System.out.println("D");break;default:System.out.println("不及格");break;}

9.3 循环

                      for循环

                                 for(初始值表达式①,条件表达式②,迭代④){

                                            //执行③

                                 }

//水仙花树(100~500)     153=1*1*1+5*5*5+3*3*3
for(int i=100;i<500;i++) {int theUnit = i%10;int decade = i/10%10;int hundred = i/100;if(i==theUnit *theUnit *theUnit +decade *decade *decade +hundred *hundred *hundred ) {System.out.println(i);}
}

                      while循环

                                初始值①

                                 while(条件表达式②){

                                            //执行③

                                            //迭代④

                                 }

//100以内能被5整除的数的和
int sum = 0;  
int i=1; //初始值 1
while(i<=100) { if(i%5==0) {sum += sum;}i++;
}

                      do while循环

                                 //初始值①

                                 do{

                                            //执行②

                                            //迭代③

                                 }while(条件表达式④);

//输入字母,如果为q则退出系统
Scanner in=new Scanner(System.in);
System.out.println("请输入字母, 输入q则退出系统");
String letter ="";
do
{letter=in.nextLine();
}
while (!letter.equals("q"));
System.out.println("退出系统");

                      foreach循环(增强for循环)

                                 for(类型 对象 : 数组或集合){

                                            //执行操作

                                 }

                      注意:(1)按照①-④的循序执行;

                                 (2)for循环和while循环的特点:先判断,后执行;do while先执行一次再判断;增强for循环用于变量数组                        或集合。

//遍历数组
int[] array = new array[]{11,22,33,44,55,66};
for(int every : array){System.out.println(every + " ");
}

9.4 嵌套循环

                      在一个循环中又嵌套另一个循环结构。

                      嵌套循环特点:外层循环执行一次,内层循环执行全部。

for(int i=0;i<10;i++) { for(int j=0;j<=i;j++) {System.out.print("*");}System.out.println();}

9.5 关键字break与continue

                      break(终止,打断):只能出现在switch语句和循环结构中;在循环中表示终止循环;后面不能跟输出语句;

                      continue(继续):只能出现在循环结构中;表示结束当前循环,进入下一次循环;

                      循环标号见如下代码:

label:for(int i=2;i<=100;i++) {		 for(int j=2;j<=Math.sqrt(i);j++) {     if(i%j==0) {continue label;}}}

                      break和continue都遵循就近原则。正常的break只退出一重循环,你可以用标号标出你想退出哪一个语句。

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 851. 喧闹和富有(拓扑排序)

文章目录1. 题目2. 解题1. 题目 在一组 N 个人&#xff08;编号为 0, 1, 2, ..., N-1&#xff09;中&#xff0c;每个人都有不同数目的钱&#xff0c;以及不同程度的安静&#xff08;quietness&#xff09;。 为了方便起见&#xff0c;我们将编号为 x 的人简称为 "perso…

LeetCode 981. 基于时间的键值存储(哈希+二分查找)

文章目录1. 题目2. 解题1. 题目 创建一个基于时间的键值存储类 TimeMap&#xff0c;它支持下面两个操作&#xff1a; set(string key, string value, int timestamp) 存储键 key、值 value&#xff0c;以及给定的时间戳 timestamp。 get(string key, int timestamp) 返回先…

java的类与对象

java的类与对象 1 面向对象 1.1 面向对象与面向过程的区别 面向过程和面向对象都是解决问题的逻辑方法&#xff0c;面向过程是强调解决问题的步骤&#xff0c;可以先定义多个函数&#xff0c;在使用的使用调用函数即可&#xff1b;面向对象把问题分解成多个对象&#xff0c;…

04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换

文章目录1. 什么是人脸识别2. One-Shot学习3. Siamese 网络4. Triplet 损失5. 人脸验证与二分类6. 什么是神经风格迁移7. 深度卷积网络在学什么8. Cost function9. Content cost function10. Style cost function11. 一维到三维推广作业参考&#xff1a;吴恩达视频课深度学习笔…

java的封装,继承,多态

java的封装&#xff0c;继承&#xff0c;多态 1 封装 1.1 封装 指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。封装可以被认为是一个保护屏障&#xff0c;防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据&#xff0c;必须通过严格的…

详解一个自己原创的正则匹配IP的表达式

第一种方法&#xff08;可以匹配有点毛病&#xff09;&#xff1a;检测IP地址的正则表达式 正则表达式&#xff1a; ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 红色块代…

天池在线编程 2020年9月26日 日常周赛题解

文章目录1. K步编辑2. 折纸3. 字符串的不同排列4. 硬币排成线题目地址&#xff0c;请点这 1. K步编辑 给出一个只含有小写字母的字符串的集合以及一个目标串(target)&#xff0c;输出所有可以经过不多于 k 次操作得到目标字符串的字符串。 你可以对字符串进行一下的3种操作:…

使用parted划分GPT分区(转)

parted命令可以划分单个分区大于2T的GPT格式的分区&#xff0c;也可以划分普通的MBR分区&#xff0c;fdisk命令对于大于2T的分区无法划分&#xff0c;所以用fdisk无法看到parted划分的GPT格式的分区。 Parted 命令分为两种模式&#xff1a;命令行模式和交互模式。 1、命令行模式…

04.卷积神经网络 W4.特殊应用:人脸识别和神经风格转换(作业:快乐屋人脸识别+图片风格转换)

文章目录作业1&#xff1a;快乐房子 - 人脸识别0. 朴素人脸验证1. 编码人脸图片1.1 使用卷积网络编码1.2 Triplet 损失2. 加载训练过的模型3. 使用模型3.1 人脸验证3.2 人脸识别作业2&#xff1a;神经风格转换1. 问题背景2. 迁移学习3. 神经风格转换3.1 计算内容损失3.2 计算风…

Maven3路程(三)用Maven创建第一个web项目(1)

一.创建项目 1.Eclipse中用Maven创建项目 上图中Next 2.继续Next 3.选maven-archetype-webapp后&#xff0c;next 4.填写相应的信息&#xff0c;Packaged是默认创建一个包&#xff0c;不写也可以 5.创建好项目后&#xff0c;目录如下&#xff1a; 至此&#xff0c;项目已经创建…

数组排序(冒泡、排序)

目前对于数组的排序有主要的两种&#xff0c;一种是选择排序&#xff0c;一种是冒泡排序。当然大学学过数据结构的知道&#xff0c;还有一些其他的排序&#xff0c;这里就不说明了&#xff0c;有时间自己上网查查。其实排序在开发中并不常用&#xff0c; 我们学习它是学一种思想…

LeetCode 1598. 文件夹操作日志搜集器

文章目录1. 题目2. 解题1. 题目 每当用户执行变更文件夹操作时&#xff0c;LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明&#xff1a; "../" &#xff1a;移动到当前文件夹的父文件夹。如果已经在主文件夹下&#xff0c;则 继续停留在当前文…

Java集合Set,List和Map等

Java集合Set,List和Map等 1 Java集合框架 因为Java是面向对象的语言&#xff0c;对事物的体现都是以对象的形式&#xff0c;为了方便对多个对象的操作&#xff0c;就要对对象进行存储。另一方面&#xff0c;使用Array存储对象方面具有一些弊端 。Java集合就像一个容器&#x…

利用bootstrap框架做了一个采摘节节日活动网页

效果欣赏如下&#xff1a; 总共主要是一下两个块代码&#xff1a; 1.主题&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"width, initial-scale1.0&qu…

LeetCode 1599. 经营摩天轮的最大利润(模拟)

文章目录1. 题目2. 解题1. 题目 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱&#xff0c;但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。 给你一…

LeetCode 1600. 皇位继承顺序(图的深度优先遍历)

文章目录1. 题目2. 解题1. 题目 一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点&#xff0c;这个家庭里有人出生也有人死亡。 这个王国有一个明确规定的皇位继承顺序&#xff0c;第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) &#xff…

Java泛型,枚举,注解

Java泛型&#xff0c;枚举&#xff0c;注解 1 泛型 1.1 什么是泛型 泛型&#xff1a;即参数化类型。在不创建新的类型的情况下&#xff0c;通过泛型指定的不同类型来控制形参具体限制的类型。允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值…

LeetCode 1601. 最多可达成的换楼请求数目(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 我们有 n 栋楼&#xff0c;编号从 0 到 n - 1 。每栋楼有若干员工。由于现在是换楼的季节&#xff0c;部分员工想要换一栋楼居住。 给你一个数组 requests &#xff0c;其中 requests[i] [fromi, toi] &#xff0c;表示一个员工请求从编号为 …

LeetCode 767. 重构字符串(堆)

文章目录1. 题目2. 解题1. 题目 给定一个字符串S&#xff0c;检查是否能重新排布其中的字母&#xff0c;使得两相邻的字符不同。 若可行&#xff0c;输出任意可行的结果。若不可行&#xff0c;返回空字符串。 示例 1: 输入: S "aab" 输出: "aba"示例 2…

LeetCode 729. 我的日程安排表 I(set 二分查找)

文章目录1. 题目2. 解题2.1 set 二分查找2.2 差分思想1. 题目 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排&#xff0c;则可以存储这个新的日程安排。 MyCalendar 有一个 book(int start, int end)方法。 它意味着在 start 到 end 时间内增加…