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:语言基础的更多相关文章

  1. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...

  2. 2008技术内幕:T-SQL语言基础

    2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...

  3. js-day01-js语言基础

    JavaScript简介:JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本 ...

  4. T-SQL语言基础(1)之理论背景

    从学校就开始接触和使用 SQL 了,但一直没有怎么细细去了解它,最近入职的公司比较重 T-SQL 部分,所以就准备系统的学习一下. 买了一本<Microsoft SQL Server 2008 ...

  5. D14——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...

  6. 2.3 Python语言基础

    2.3 Python语言基础 1 语言语义(Language Semantics) 缩进,而不是括号 Python使用空格(tabs or spaces)来组织代码结构,而不是像R,C++,Java那 ...

  7. 2008技术内幕:T-SQL语言基础 单表查询摘记

    这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLFundamentals2008 ,官网给出的连接是这 ...

  8. T-SQL语言基础(转载)

    本文转自http://www.cnblogs.com/Jolinson/p/3552786.html 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基 ...

  9. 2018.6.13 Java语言基础复习总结

    Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计 ...

随机推荐

  1. Qt中如何写一个model

    在qt中,用到最多就是model/view的结构来表示数据层及表示层的关系.model用于给view提供数据.那如何来实现一个简单的树形model呢. 实现一个自己的model需要重载以下的方法: Q ...

  2. java获取当前操作系统的信息

    java获取当前操作系统的信息 JavaOS虚拟机UnixEXT  从网上收集的一些关于java获取操作系统信息的方法,现在总结一下: 1获取本机的IP地址: private static Strin ...

  3. Java多线程2:实现多线程的两种方式

    原文:http://www.cnblogs.com/skywang12345/p/3479063.html 常见的实现多线程的方式有2种,一是继承Thread类,二是实现 Runnable接口,还可以 ...

  4. 整理了一份招PHP高级工程师的面试题

    1. 基本知识点 HTTP协议中几个状态码的含义:1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码   说明 100   (继续) 请求者应当继续提出请求. 服务器返回此代码 ...

  5. Vim 命令笔记

    给指定行添加序号 let la = 行a let lb = 行b +1 let lc = lb - la for i in range(lc) let cl = la + i call setline ...

  6. jdbc知识问答 分类: 面试 2015-07-10 22:05 5人阅读 评论(0) 收藏

    1 JDBC连接数据库6步 Load the JDBC Driver Establish the Database Connection Create a Statement Object Execu ...

  7. .net MVC APi调用

    常用的调用方法为Get/Post Get方法: 服务器 public string Get(int id) { return "value"; } 这个直接在网页就可以测试,用 h ...

  8. ExtJs自学教程(1):一切从API开始

    题 记 该系列文章不侧重全方位的去介绍ExtJs的使用,只是侧重于解决ExtJs问题的思考方法.写的人不用长篇大论,学的人则能够自立更生.l  学习的人只要有一些CSS的javascript的基础知识 ...

  9. 面向对象设计Object Oriented Design

    http://www.codeproject.com/Articles/93369/How-I-explained-OOD-to-my-wife http://www.cnblogs.com/niyw ...

  10. python 字符串换行的三种方式

    if __name__ == '__main__': #第一种: 三个单引号 print ''' aaaaaaaaaaaaaaaa         bbbbbbbbbbbbbb''' #第二种: 三个 ...