最近看很多算法书,比较不错的有不少都是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

break,continue和return 都支持

Java快速提升_java快速复习 一 基础语法相关推荐

  1. java 快速入门_Java快速入门-01-基础篇

    Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...

  2. java多线程面试_Java多线程和并发基础面试问答,看过后你不会后悔

    ***:Java多线程面试问题 1:进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java ...

  3. java基本语法心得_Java学习笔记(一)——基础语法(上)

    Java学习笔记(一)--基础语法(上) 软件构造 写在前面 编写Java程序时,应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的 ...

  4. java类型提升_java表达式中类型的自动提升(转)

    java表达式中类型的自动提升(转)[@more@]除了赋值,还有另外一种类型变换:在表达式中.想要知道原因,往下看.在表达式中,对中间值的精确要求有时超过任何一个操作数的范围.例如,考虑下面的表达式 ...

  5. 第三次学JAVA再学不好就吃翔(part6)--基础语法之char数据类型

    学习笔记,仅供参考 文章目录 JAVA基础语法 字符和字符串参与运算 char数据类型 JAVA基础语法 字符和字符串参与运算 字符与int类型 class Test0528 {public stat ...

  6. 第三次学JAVA再学不好就吃翔(part5)--基础语法之数据类型转换

    学习笔记,仅供参考 文章目录 JAVA基础语法 数据类型转换之隐式转换 数据类型转换之强制转换 JAVA基础语法 数据类型转换之隐式转换 byte类型转换为int类型 class TypeConver ...

  7. 第三次学JAVA再学不好就吃翔(part15)--基础语法之控制跳转语句

    学习笔记,仅供参考 文章目录 JAVA基础语法 break语句 continue语句 标号 return语句 JAVA基础语法 break语句 应用场景 只能在switch和循环中使用 举个例子 cl ...

  8. 第三次学JAVA再学不好就吃翔(part14)--基础语法之循环语句注意事项

    学习笔记,仅供参考 文章目录 JAVA基础语法 for, while, do...while的区别 死循环 循环嵌套 JAVA基础语法 for, while, do-while的区别 do-while ...

  9. 第三次学JAVA再学不好就吃翔(part13)--基础语法之while循环语句

    学习笔记,仅供参考 文章目录 JAVA基础语法 while语句 do...while语句 JAVA基础语法 while语句 格式 初始化语句; while(判断条件语句) {循环体语句;控制条件语句; ...

最新文章

  1. 在Linux下正确安装VMWARE TOOLS
  2. Memcached Java客户端2.6.1发布
  3. WebRTC 的 log 系统实现分析
  4. Eclipse预编译的include路径与宏定义
  5. android 心跳效果动画,Android实现心跳的效果
  6. android 按钮控制线程,关于手机安卓-线程测试
  7. List 、Set、 Map有什么区别和联系
  8. iOS学习——Socket
  9. 推荐系统基础之介绍入门篇
  10. CLR探索系列:深入追踪托管exe加载执行过程
  11. ni max不能连续采集图像_1.6视觉检测项目过程分解——程序的连续运行
  12. thinkphp 下载txt文档
  13. 什么ftp扫描工具好用,你所认识的什么ftp扫描工具好用
  14. 2021-10-21 FFmpeg截取视频第一帧
  15. c盘空间清理,无需软件
  16. linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...
  17. 你不是骄傲,而是活得太傲娇了
  18. 一个复杂页面该如何布局设计
  19. plotly绘制简单图形10--金字塔图
  20. 关于win10打印机设置错误,无法打印的解决办法

热门文章

  1. 真正拿大厂offer的人,都赢在这一点
  2. Storm精华问答 | Storm如何连接MySQL?
  3. 360深度实践:Flink与Storm协议级对比
  4. 表格长度_知道你的成绩单是怎么打印的吗?超长Excel表格1页打印,拯救A4纸
  5. 小程序 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡
  6. Mongo 安装、配置、启动 Windows
  7. IntelliJ IDEA 2020.1 快速查找文件
  8. Maven配置、使用
  9. gblfy博客配色模板
  10. git Could not read from remote repository.Please make sure you have the correct access rights.