java快速复习 一 基础语法
最近看很多算法书,比较不错的有不少都是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快速复习 一 基础语法的更多相关文章
- Java学习笔记之---基础语法
Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...
- JavaScript快速入门-ECMAScript基础语法
一.JavaScript引入方式 1.行内式 <script> alert(123); </script> 2.外链式 <script src='custom.js'&g ...
- JAVA企业级开发-xml基础语法&约束&解析(04)
一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...
- java学习笔记之基础语法(一)
1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...
- Java连载47-多态基础语法、作用
一.多态的语法 1.两个类之间没有继承关系的,使用多态是不能编译的. 2.无论向上还是向上转型,都需要有继承关系. 3.什么时候需要向下转型? 当调用的方法或者属性是子类型特有的,在父类型中不存在,就 ...
- Java入门笔记 01-Java基础语法
一.数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线_.美元符号$开头. 标 ...
- JAVA预科:Markdown基础语法
JAVA预科:Markdown语法 什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub 和技术问答网站 Stack ...
- Scala - 快速学习03 - 基础语法
1- 变量 变量 mutable variable 在程序运行过程中其值可能发生改变的量 关键词var定义变量,定义时直接进行求值 常量 immutable variable 在程序运行过程中其值不会 ...
- java与C#的基础语法区别--持续更新
1.判断字符串是否相等 java : equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等.即使它们内容相等,但是不同 ...
随机推荐
- Spring Boot项目如何同时支持HTTP和HTTPS协议
如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一 ...
- Spring Boot从零入门1_详述
本文属于原创,转载注明出处,欢迎关注微信小程序`小白AI博客` 微信公众号`小白AI`或者网站 [https://xiaobaiai.net](https://xiaobaiai.net) 的操作(二) -- 多表查询
MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...
- day4-01 流程控制
目录 一.if语法 1.什么是if? 2.语法结构 2.1.if 条件: 2.2.if...else: 2.3.if...elif...else: 2.4.if嵌套 二.循环结构 2.1 什么是循环结 ...
- ManyToMany 字段的使用
创建一个经典的多对多关系:一本书可以有多个作者,一个作者可以有多本书(如下,csdn复制的图片) 当进行数据迁移时,会生成三张表,了解就好 1,查询数据的操作 : 1.一本书的所有作者 b = Boo ...
- 陈莉君教授: 回望踏入Linux内核之旅
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 陈莉君 来源: 微信公众号linux阅码场(id: linuxdev) 初次踏入Linux 几多耕耘,几多收获 ...
- 学习c++11 ThreadPool【转】
#ifndef THREAD_POOL_H #define THREAD_POOL_H #include <vector> #include <queue> #include ...
- 有关logistic(sigmoid)函数回归
在神经网络中,经常用到sigmoid函数,y = 1 / (1+e-x) 作为下一级神经元的激活函数,x也就是WX(下文,W以θ符号代替)矩阵计算结果. 这个函数通常用在进行分类,通常分为1或0的逻辑 ...
- [2018-03-06] 基于Django的轻量级CMS Mezzanine搭建笔记
一丶什么是Mezzanine? 它是基于django的内容管理平台(),组成简单,可扩展性和定制性强,特别是个小型的个人博客系统.它也提供了类似wordpress的管理页面.博客发布.图片展示等功能, ...
- The reference to entity "characterEncoding" must end with the ';'
在配置数据库连接池数据源时,本来没有错误,结果加上编码转换格式后eclipse突然报错: 这是怎么回事? 经过查询,发现这个错误其实很好解决. 首先,原因是: .xml文件中 ‘ & ’字符需 ...