jjzjj

java基本语法(史上最全)

放学-别走 2023-04-20 原文

java基本语法(史上最全)

(一)关键字和保留字

关键字的定义和特点

定义:被java语言赋予了特殊含义,用作专门用途的字符串。

特点:关键字中所有字母都为小写。关键字不能用作变量名,方法名,类名,包名和参数。

2.保留字

定义:现在java尚未使用,但以后版本可能会作为关键字使用。自己使用时应避免使用。

(二)标识符

标识符

凡是可以自己命名的地方都叫标识符。例如:包名,类名,方法等。

定义合法标识符规则

1.有26个英文字母大小写,0-9,_或$组成。

2.不能以数字开头。

3.不可以使用关键字和保留字,但能包含关键字和保留字。

4.严格区分大小写。

5.标识符不能包含空格。

java中的名称命名规范

1.包名:多单词组成时所有字母都小写:xxxyyyzzz

2.类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

3.变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

4.常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

(三)变量

变量的概念

1.内存中的一个储存区域。

2.该区域的数据可以在同一类型范围内不断变化。

3.变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

变量的作用

用于内存中保存数据。

变量的声明

语法:<数据类型> <变量名称>

int a;

变量的赋值

语法:<变量名称> = <值>

a = 10;

注意:java中每个变量必须要先声明,后使用。

变量的声明和赋值

语法:<数据类型> <变量名> = <初始化值>

int a = 10;

在方法体外,类体内声明的变量称为成员变量。

在方法体内部声明的变量称为局部变量。

二者在初始化方面的异同

同:都有生命周期。 异:局部变量除形参外,需要初始化。

(四)基本数据类型

自动类型转换(隐式)

1.特点:代码不需要进行特殊处理,自动完成

2.规则:数据范围从小到大

例如:int类型自动转化为long类型

long b = 10;

注意:

1.byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

2.boolean类型不能与其它数据类型运算。

3.当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

强制类型转换(显示)

1.特点:代码需要进行特殊的格式处理,不能自动完成

2.规则:数据范围由小到大

格式如下:

int b = (int)10L;

整数类型:byte,short,int,long

注意:java的整型常亮默认为int型,声明long型常量须后加 'l’或’L’

浮点类型:float、double

注意:Java 的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’

字符类型:char

注意:char类型是可以进行运算的。因为它都对应有Unicode码。

布尔类型:boolean

注意:boolean类型数据只允许取值true和false,无null。

boolean类型不可以转换为其它的数据类型。

(五)运算符

运算符的分类

1.算术运算符

自增(自减)运算符:++,–

例:a++:先赋值后运算

int a = 1;
int b = a++;
System.out.print(a);//a=2
System.out.print(b);//b=1

例:++a:先运算后赋值

int a = 1;
int b = ++a;
System.out.print(a);//a=2
System.out.print(b);//b=2

2.赋值运算符

3.比较运算符(关系运算符)

注意:

1.>、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

2.== 、 != 两边的操作数既可以是数值类型,也可以是引用类型

3.== 比较基本数据类型时,比较的是值。比较引用数据类型时比较的是地址。

4.逻辑运算符

“&”和“&&”的区别

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

5.位运算符

位运算是直接对整数的二进制进行的运算

6.三元运算符

语法形式:布尔表达式 ? 表达式1:表达式2

布尔表达式为true,运算结果为表达式1。反之,结果为表达式2。

int a = (10>3) ? 5 : 10;//10>3为true,a=5
int a = (10<3) ? 5 : 10;//10<3为false,a=10

(五)运算符优先级

(六)程序流程控制

结构化程序设计中规定的三种基本流程结构,分别为:顺序结构,分支结构,循环结构。

顺序结构

程序由上向下执行。

public class Test{
        int num1 = 12;
        int num2 = num1 + 2;
}//java中定义成员变量时采用合法的向前引用。

分支语句if-else

if语句三种格式:


分支语句switch-case
public class SwitchTest {
    public static void main(String args[]) {
        int i = 1;
        switch (i) {
        case 0:
            System.out.println("one");
            break;
        case 1:
            System.out.println("two");
            break;
        default:
            System.out.println("other");
            break;
        }
    }
}

注意:

1.switch(表达式)中表达式的值必须是下述几种类型之一:byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);

2.break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾

循环结构

循环语句由四个组成部分

1.初始化部分

2.循环条件部分

3.循环体部分

4.迭代部分

循环结构:for循环
public class ForLoop {
    public static void main(String args[]) {
        int result = 0;
        for (int i = 1; i <= 100; i++) {//1.初始化部分 2.循环条件部分 3.迭代部分
            result += i;//循环体部分
        }
        System.out.println("result=" + result);
    }
}
循环结构:while循环
public class WhileLoop {
    public static void main(String args[]) {
        int result = 0;
        int i = 1;//1.初始化部分
        while (i <= 100) {//循环条件
            result += i;//循环体部分
            i++;//迭代部分
        }
        System.out.println("result=" + result);
    }
}
循环结构:do-while循环
public class DoWhileLoop {
    public static void main(String args[]) {
        int result = 0, i = 1;//初始化部分
        do {
            result += i;//循环体部分
            i++;//迭代部分
        } while (i <= 100);//循环条件部分
            System.out.println("result=" + result);
        }
}

注意:while与do…while的区别

  1. while: 先判断 再执行 条件不成立 循环体 一遍都不执行
  2. do…while: 先执行 再判断 条件不成立 循环体 至少执行一遍

(八)特殊关键字break,continue

break语句

break语句用于终止某个语句块的执行

public class BreakTest{
		public static void main(String args[]){
	    for(int i = 0; i<10; i++){ 
	     	if(i==3)
		      break;//当条件成立时,终止for循环	
	    	System.out.println(" i =" + i);
	    }
	    System.out.println("Game Over!");
		}
}

continue语句

continue只能使用在循环结构中

continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环

public class ContinueTest {
	public static void main(String args[]){
	     for (int i = 0; i < 100; i++) {
	      	  if (i%10==0)
			        continue;//跳出成立的循环
		      System.out.println(i);
		  }  
    }  
} 

注意:

1.return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。

2.与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

有关java基本语法(史上最全)的更多相关文章

  1. ruby - 树顶语法无限循环 - 2

    我脑子里浮现出一些关于一种新编程语言的想法,所以我想我会尝试实现它。一位friend建议我尝试使用Treetop(Rubygem)来创建一个解析器。Treetop的文档很少,我以前从未做过这种事情。我的解析器表现得好像有一个无限循环,但没有堆栈跟踪;事实证明很难追踪到。有人可以指出入门级解析/AST指南的方向吗?我真的需要一些列出规则、常见用法等的东西来使用像Treetop这样的工具。我的语法分析器在GitHub上,以防有人希望帮助我改进它。class{initialize=lambda(name){receiver.name=name}greet=lambda{IO.puts("He

  2. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  3. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  4. ruby - 覆盖相似的方法,更短的语法 - 2

    在Ruby类中,我重写了三个方法,并且在每个方法中,我基本上做同样的事情:classExampleClassdefconfirmation_required?is_allowed&&superenddefpostpone_email_change?is_allowed&&superenddefreconfirmation_required?is_allowed&&superendend有更简洁的语法吗?如何缩短代码? 最佳答案 如何使用别名?classExampleClassdefconfirmation_required?is_a

  5. ruby 语法糖 : dealing with nils - 2

    可能已经问过了,但我找不到它。这里有2个常见的情况(对我来说,在编程Rails时......)用ruby​​编写是令人沮丧的:"astring".match(/abc(.+)abc/)[1]在这种情况下,我得到一个错误,因为字符串不匹配,因此在nil上调用[]运算符。我想找到的是比以下内容更好的替代方法:temp="astring".match(/abc(.+)abc/);temp.nil??nil:temp[1]简而言之,如果不匹配,则简单地返回nil而不会出错第二种情况是这样的:var=something.very.long.and.tedious.to.writevar=some

  6. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  7. ruby - Ruby 语法糖有 "rules"吗? - 2

    我正在学习Ruby的基础知识(刚刚开始),我遇到了Hash.[]method.它被引入a=["foo",1,"bar",2]=>["foo",1,"bar",2]Hash[*a]=>{"foo"=>1,"bar"=>2}稍加思索,我发现Hash[*a]等同于Hash.[](*a)或Hash.[]*一个。我的问题是为什么会这样。是什么让您将*a放在方括号内,是否有某种规则可以在何时何地使用“it”?编辑:我的措辞似乎造成了一些困惑。我不是在问数组扩展。我明白了。我的问题基本上是:如果[]是方法名称,为什么可以将参数放在括号内?这看起来几乎——但不完全是——就像说如果你有一个方法Foo.d

  8. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

随机推荐