最近看很多算法书,比较不错的有不少都是java语言描述,所以用一天时间快速研究并整理java  ,参考资料:java入门经典

Call this file "Example2.java".

class Example2 {
public static void main(String args[]) { int a; //声明变量 a = 100; //赋值 if(a = 100) print(a); // if(condition) statement; int x ;
char y = 'x'; 
byte z = 22; 
int d = 3, e, f = 5;
for(x = 0; x<10; x = x+1) // for(initialization; condition; iteration) statement;
System.out.println("This is x: " + x); }
}

  

java文件名和类名要相同,运行Java解释器实际上是指定你想要解释器运行的类的名字,它会自动搜索包含该名字且带有.class扩展名的文件。如果找到,它将运行含在该指定类中的代码。

所有的Java应用程序都通过调用main( )开始执行。关键字public是一个访问说明符(access specifier),它允许程序员控制类成员的可见性。如果一个类成员前面有public,则说明该成员能够被声明它的类之外的代码访问(与public相对的是private,它禁止成员被所属类之外的代码访问)。在本例中,main( )必须被定义为public类型因为当程序开始执行时它需要被它的类之外的代码调用。

关键字static允许调用main( )而不必先实现该类的一个特殊实例

关键字void仅通知编译器main()不返回任何值

Java是区分大小写的。

即使一个方法不需要参数,你仍然需要在方法名后面放置一对空括号。main( )仅是解释器开始工作的地方。一个复杂的程序可能包含几十个类,但这些类仅需要一个main( )方法以供解释器开始工作。

java 数据类型

整数:该组包括字节型(byte),短整型(short),整型(int),长整型(long),
它们有符号整数。
浮点型数:该组包括浮点型(float),双精度型(double),它们代表有小数精度
要求的数字。
字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。
布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,表示真/假值。

在Java中,字符串实际上是对象类型。因为Java对字符串是作为对象实现的,因此,它有广泛的字符串处理能力,而且功能既强又好用。


变量作用域和生存期

大多数其他计算机语言定义了两大类作用域:全局和局部。在JAVA中不适用。

程序块被包括在一对大括号中。一个程序块定义了一个作用域(scope)。这样,你每次开始一个新块,你就创建了一个新的作用域。你可能从先前的编程经验知道,一个作用域决定了哪些对象对程序的其他部分是可见的,它也决定了这些对象的生存期。

方法定义的作用域以它的左大括号开始。但是,如果该方法有参数,那么它们也被包括在该方法的作用域中。 if for 这些都是方法。

作为一个通用规则,在一个作用域中定义的变量对于该作用域外的程序是不可见。

作用域可以进行嵌套。例如每次当你创建一个程序块,你就创建了一个新的嵌套的作用域。这样,外面的作用域包含内部的作用域。这意味着外部作用域定义的对象对于内部作用域中的程序是可见的

变量在其作用域内被创建,离开其作用域时被撤消。

如果一个声明定义包括一个初始化,那么每次进入声明它的程序块时,该变量都要被重新初始化


类型转换

下列2个条件都能满足将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换

这2种类型是兼容的。

目的类型数的范围比来源类型大

例如,int型的范围比所有byte型的合法范围大,因此不要求显式强制类型转换语句

对于拓宽转换,数字类型,包括整数(integer)和浮点(floating-point)类型都是彼此兼容的

数字类型和字符类型(char)或布尔类型(bollean)是不兼容的

不兼容类型的强制转换

int a;
byte b;
// ...
b = (byte) a;

当把浮点值赋给整数类型时一种不同的类型转换发生了:截断(truncation)。你知道整数没有小数部分。这样,当把浮点值赋给整数类型时,它的小数部分会被舍去

class Conversion {
public static void main(String args[]) {
byte b;
int i = 257;
double d = 323.142;
System.out.println("\nConversion of int to byte.");
b = (byte) i;
System.out.println("i and b " + i + " " + b);
System.out.println("\nConversion of double to int.");
i = (int) d;
System.out.println("d and i " + d + " " + i);
System.out.println("\nConversion of double to byte.");
b = (byte) d;
System.out.println("d and b " + d + " " + b);
}
}

  

表达式中类型的自动提升

byte a = 40;
byte b = 50;
byte c = 100;
int d = a * b / c; //中间项结果a*b很容易超过它的任何一个byte型操作数的范围。为处理这种问题,当分
析表达式时,Java自动提升各个byte型或short型的操作数到int型。这意味着子表达式a*b使
用整数而不是字节型来执行

  

自动类型提升的问题

byte b = 50;
b = b * 2; // Error! Cannot assign an int to a byte!
该程序试图将一个完全合法的byte型的值50*2再存储给一个byte型的变量。但是当表达
式求值的时候,操作数被自动地提升为int型,计算结果也被提升为int型。这样,表达式的
结果现在是int型,不强制转换它就不能被赋为byte型 byte b = 50;
b = (byte)(b * 2); //正解

  

类型提升一直以最高级的类型为目标提升。


数组

声明数组

int month_days[];  //type var-name[ ];

声明并初始化为0

month_days = new int[12];  //array-var = new type[size];

赋值

month_days[0] = 31;
month_days[1] = 28;

声明并初始化

int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 };

二维数组

int twoD[][] = new int[4][5];

第二种声明形式以下两种等价

int al[] = new int[3];
int[] a2 = new int[3];

Java不支持或不允许指针因为这样做将允许Javaapplet(小应用程序)突破Java运行环境和主机之间的防火墙 后面说解决方案。


运算符

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

关系运算符

== != > < >= <=

逻辑运算符 & |  ^  || && ! &= |= ^= == != ?:

注意java有三元运算

expression1 ? expression2 : expression3

ratio = denom == 0 ? 0 : num / denom;


if(condition)
statement;
else if(condition)
statement;
else if(condition)
statement;

else
statement;

switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
.
.
.
case valueN:
// statement sequence
break;
default:
// default statement sequence
}

表达式expression必须为byte,short,int或char类型。每个case语句后的值value必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的

switch可以嵌套

三种循环

while(condition) {
// body of loop
}

do {
// body of loop
} while (condition);

for(initialization; condition; iteration) {
// body
}

Java允许你在for循环的初始化部分和反复部分声明多个变量,每个变量之间用逗号分开。

for(a=1, b=4; a<b; a++, b--) {}

break,continue和return 都支持

java快速复习 一 基础语法的更多相关文章

  1. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  2. JavaScript快速入门-ECMAScript基础语法

    一.JavaScript引入方式 1.行内式 <script> alert(123); </script> 2.外链式 <script src='custom.js'&g ...

  3. JAVA企业级开发-xml基础语法&约束&解析(04)

    一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...

  4. java学习笔记之基础语法(一)

    1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...

  5. Java连载47-多态基础语法、作用

    一.多态的语法 1.两个类之间没有继承关系的,使用多态是不能编译的. 2.无论向上还是向上转型,都需要有继承关系. 3.什么时候需要向下转型? 当调用的方法或者属性是子类型特有的,在父类型中不存在,就 ...

  6. Java入门笔记 01-Java基础语法

    一.数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线_.美元符号$开头. 标 ...

  7. JAVA预科:Markdown基础语法

    JAVA预科:Markdown语法 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub 和技术问答网站 Stack ...

  8. Scala - 快速学习03 - 基础语法

    1- 变量 变量 mutable variable 在程序运行过程中其值可能发生改变的量 关键词var定义变量,定义时直接进行求值 常量 immutable variable 在程序运行过程中其值不会 ...

  9. java与C#的基础语法区别--持续更新

    1.判断字符串是否相等 java : equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等.即使它们内容相等,但是不同 ...

随机推荐

  1. python爬取旅游数据+matplotlib简单可视化

    题目如下: 共由6个函数组成: 第一个函数爬取数据并转为DataFrame: 第二个函数爬取数据后存入Excel中,对于解题来说是多余的,仅当练手以及方便核对数据: 后面四个函数分别对应题目中的四个m ...

  2. 神奇的 SQL 之团结的力量 → JOIN

    前言 开心一刻   闺蜜家暴富,买了一栋大别野,喊我去吃饭,菜挺丰盛的,筷子有些不给力,银筷子,好重,我说换个竹子的,闺蜜说,这种银筷子我家总共才五双,只有贵宾才能用~我咬着牙享受着贵宾待遇,终于,在 ...

  3. 微信小程序初级教程

    小程序代码构成 JSON 配置 WXML 模版 WXSS 样式 JS 逻辑交互 JSON 配置 在小程序中,JSON扮演的静态配置的角色. 小程序配置 app.json { "pages&q ...

  4. git jenkins 介绍

    1.什么是持续集成?2.什么是持续交付?3.什么是持续部署?4.版本控制工具? git    1.git基本操作    2.git 分支    3.git 标签tag    4.gitlab  git ...

  5. Java学习笔记二--API课堂记录

    JavaSE课堂记录(二) 第一节课 方法的重载:方法名相同,参数列表不同 方法的重写:方法名,参数列表相同 两同:方法名相同,参数列表相同 两小:访问权限小与等于父类,返回值类型小于等于父类(返回值 ...

  6. ArcGIS制作地形图【详细步骤】

    结果图: 详细步骤: 一.在ArcSence中加载带有投影坐标系的dem数据 Dem的属性设置为下图可有上面的效果. 二.提取栅格范围 找到工具[3D Analyst][转换][栅格范围]双击打开设置 ...

  7. fenby C语言 P22

    #include <stdio.h> int main(){ char array[]={'t','o','m','c','a','t'}; int i; for(i=0;i<6;i ...

  8. Mycat分布式数据库架构解决方案--配置defaultAccount属性报错解决方案

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 该文章 ...

  9. MySQL的sleep函数的特殊特现象

      MySQL中的系统函数sleep,实际应用的场景不多,一般用来做实验测试,昨天在测试的时候,意外发现sleep函数的一个特殊现象.如果在查询语句中使用sleep函数,那么休眠的时间跟返回的记录有关 ...

  10. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...