Language Basics:语言基础
Java包含多种变量类型:
Instance Variables (Non-Static Fields)(实例变量):是每个对象特有的,可以用来区分各个实例
Class Variables (Static Fields)(类变量):多个对象间将共享这个变量,他只有一个存在,如果加了final表示这个变量不可修改
Local Variables(局部变量):通常是在方法内定义,只是所在的方法内才能访问
Parameters(参数):常用于方法,构造方法,或异常捕获的时候
关于一些称谓:说到字段,通常指前两个,说变量,通常指所有四种,
而成员,通常是说所有的字段,方法,和一些内嵌成员(如内部类)
命名规则:大小写敏感,长度不限,以字母,_,$开头的Unicode字符,不能有空格,但规范做法是字母开头
后面的字符也可以包含数字,但起名最好有意义,宁可长也不要用难懂的缩写,另外不要使用关键字和保留字
规范写法是首字母小写,以后的单词头字母大写,如果是常量就这样:static final int NUM_GEARS = 6
\u可以用于java代码的任何地方,代表具体某个字符,而不只是在''和""里
java是statically-typed(静态类型)语言,也就是变量使用前必须声明(八大原始类型)
原始数据类型的值之间,并没任何关系,也不共享什么,他们并不是对象
int在JDK8以后可以表示正整数了,也就是0~2^32-1,Integer.compareUnsigned, divideUnsigned
同样还有long
float,double是不精确的,精确地要用 java.math.BigDecimal
char的范围:'\u0000'到'\uffff',16位的Unicode字符
"sdfdsf"将立即生成一个String对象,并且是不可变得,String并不是原始类型(不过那不重要,你可以按原始类型来理解)
已经声明的变量都会由编译器赋予一个确定的默认初始值,char是'\u0000',String是null
但局部变量不会,访问前请确保已经赋值,否则会编译错误
literal(字面量)是指无需计算即知道确定值的一个东西
比如给原始类型赋值时,=后面的那个东西
可以用123L,234.45D,234.45F,0x2E,234.5e32,null,'w',"sdfds"等
在JDK7以后可以有二进制字面量了,0b10101001
null可以赋给任何对象,但不能是原始类型
还有个特殊的class字面量,如String.class,前面只能加某种类型,返回Class的一个对象,代表这种类型本身
在JDK7以后,数字字面量中可以包含任意的_,增强可读性,但不能放在首位和末尾,小数点附近也不行,特殊符号如L,D附近也不行
long creditCardNumber = 1234_5678_9012_3456L;
long bytes = 0b11010010_01101001_10010100_10010010;
array(数组)的长度是固定的,里面存放的都是同一类型,而数组也不是原始类型
数组的元素通过下标(序号)访问
数组声明有两种形式
int[] anArray;
或
float anArrayOfFloats[]//不规范
建立数组可以
= new int[10];
或直接赋值
= {
100, 200, 300,
400, 500, 600,
700, 800, 900, 1000
};
java的多重数组跟c++的不同在于,每一个部分都是一个数组,而且内部长度可以不一样
.lenth代表数组的长度
String[][] names = {
{"Mr. ", "Mrs. ", "Ms. "},
{"Smith", "Jones"}
};
另外有两个API可用
System.arraycopy(copyFrom, 2, copyTo, 0, 7);//7为复制总长[2,2+7)
copyTo = Arrays.copyOfRange(copyFrom, 2, 9);//java.util.Arrays拷贝[2,9)
Arrays.binarySearch()
Arrays.equals()
Arrays.fill()
Arrays.sort()
Arrays.parallelSort()//是JDK8新加的,多处理器排序
Operators(操作符)可以对多个operands(操作数)进行特定操作并返回某种结果
操作符是有优先级的,如果不能确定就自己加括号
= Simple assignment operator
+ Additive operator (also used
for String concatenation)
- Subtraction operator
* Multiplication operator
/ Division operator
% Remainder operator
+ Unary plus operator; indicates
positive value (numbers are
positive without this, however)
- Unary minus operator; negates
an expression
++ Increment operator; increments
a value by 1
-- Decrement operator; decrements
a value by 1
! Logical complement operator;
inverts the value of a boolean
== Equal to
!= Not equal to
> Greater than
>= Greater than or equal to
< Less than
<= Less than or equal to
&& Conditional-AND
|| Conditional-OR
?: Ternary (shorthand for
if-then-else statement)
instanceof Compares an object to
a specified type
~ Unary bitwise complement
<< Signed left shift
>> Signed right shift
>>> Unsigned right shift
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive OR
switch可用于byte, short, char, and int的判断,没有long
也可用于enumerated types(枚举),和相应的包装类
在JDK7以后可以用String,但要先判断是否为null
break可以加标签的,指定要跳出的循环体,continue同理
并不是转到这个标签,而是跳出标签下面最近的那个大括号,继续执行
search:
for (i = 0; i
break search;
Language Basics:语言基础的更多相关文章
- php面试题之三——PHP语言基础(基础部分)
三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...
- 2008技术内幕:T-SQL语言基础
2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...
- js-day01-js语言基础
JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...
- T-SQL语言基础(1)之理论背景
从学校就开始接触和使用 SQL 了,但一直没有怎么细细去了解它,最近入职的公司比较重 T-SQL 部分,所以就准备系统的学习一下. 买了一本<Microsoft SQL Server 2008 ...
- D14——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...
- 2.3 Python语言基础
2.3 Python语言基础 1 语言语义(Language Semantics) 缩进,而不是括号 Python使用空格(tabs or spaces)来组织代码结构,而不是像R,C++,Java那 ...
- 2008技术内幕:T-SQL语言基础 单表查询摘记
这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这 ...
- T-SQL语言基础(转载)
本文转自http://www.cnblogs.com/Jolinson/p/3552786.html 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基 ...
- 2018.6.13 Java语言基础复习总结
Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计 ...
随机推荐
- jQuery通知插件 -- noty
noty是一个jQuery的通知(信息提示)插件,灵活轻便,是一个非常棒的用于替代传统提示对话框的插件. 当前最新版本为2.1.0: 从https://github.com/needim/noty 可 ...
- JDK,JRE,JVM区别与联系
JDK : Java Development ToolKit(Java开发工具包).JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工 ...
- NodeJS常用库说明
underscore:1.合并json async:1.异步编程同步化
- LA 3029 - City Game (简单扫描线)
题目链接 题意:给一个m*n的矩阵, 其中一些格子是空地(F), 其他是障碍(R).找一个全部由F 组成的面积最大的子矩阵, 输出其面积乘以3的结果. 思路:如果用枚举的方法,时间复杂度是O(m^2 ...
- 【.NET应用技巧】Asp.NET MVC 4 设置IIS下调试
[环境] VS 2012 IIS7.5 [问题] MVC项目在创建时和APS.NET不同,不能够选择服务器类型,不能够直接把项目创建到IIS上. 如果在项目中直接更改属性,更换调试服务器类型,会报错 ...
- Hadoop configration类分析
configration这个类是分析hadoop源代码一个很好地入口. 先从需求说起.对于一个大型的文件系统,基于配置文件可以增强灵活性.congfigration类就是为了管理配置文件的. 配置文件 ...
- cocos2d-x 小技巧
1.字符串 与 数据结构互转 CCPoint: CCPointFromString(); {x, y} CCSize: CCSizeFromString(); {w, h} CCRect: CCSiz ...
- GBDT(Gradient Boosting Decision Tree)算法&协同过滤算法
GBDT(Gradient Boosting Decision Tree)算法参考:http://blog.csdn.net/dark_scope/article/details/24863289 理 ...
- CentOS SVN服务器安装配置小记
SVN的安装 安装很简单,尤其对于CentOS这种,直接: # yum install subversion# yum install mod_dav_svn 不同发行版的Package安装方法参见h ...
- 深入浅出ClassLoader
你真的了解ClassLoader吗? 这篇文章翻译自zeroturnaround.com的 Do You Really Get Classloaders? ,融入和补充了笔者的一些实践.经验和样例.本 ...