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. QEvent大全,有中文解释

    简述 QEvent 类是所有事件类的基类,事件对象包含事件参数. Qt 的主事件循环(QCoreApplication::exec())从事件队列中获取本地窗口系统事件,将它们转化为 QEvents, ...

  2. [iOS]iPhone利用<极光推送>实现远程推送

    准备: 1. 一个Xcode工程 2. 开发者账号 3. 真机 (重要,模拟器无法进行远程推送,因为模拟器没有UDID) 第一步:绑定工程的Bundle Identifer 首先当然要登录https: ...

  3. 浅析CDN安全

    目前CDN技术到处可见.像网宿.蓝讯.加速乐等都依靠CDN过活,连安全宝也都使用了CDN技术,当然很多域名空间商现在也提供CDN服务.从以往互联网的发展上看,CDN是个趋势,很多厂商也都多多少少购买了 ...

  4. PCL—低层次视觉—点云滤波(基于点云频率)

    1.点云的频率 今天在阅读分割有关的文献时,惊喜的发现,点云和图像一样,有可能也存在频率的概念.但这个概念并未在文献中出现也未被使用,谨在本博文中滥用一下“高频”一词.点云表达的是三维空间中的一种信息 ...

  5. C#中的Attribute和Java中的Annotation

    在之前的博客中介绍过C#的Attribute(特性),简单的说,特性主要就是利用反射技术,在运行期获取关注类的相关标注信息,然后利用这些标注信息对关注的类进行处理,最近因为工作的原因,需要看一下Jav ...

  6. 公交wifi运营平台分析

    一.前言背景 昨晚下午,老板让看一些车载公交wifi后台管理的一些东西,这个随着移动端设备而兴起的wifi战,慢慢的也会越演越烈. 现在于很多人在外面的时候,进入一家店首先看的不是菜单,而是问一句“你 ...

  7. andorid源码中察看版本

    build\core\version_defaults.mk //搜索该文件中的 PLATFORM_VERSION值

  8. cdev_init函数

    linux-2.6.22/include/linux/cdev.hstruct cdev {   struct kobject kobj;          // 每个 cdev 都是一个 kobje ...

  9. 1128. Partition into Groups(图着色bfs)

    1128 写的dfs貌似不太对 bfs重写 用bfs将图进行黑白染色 如果有超过一个与自己颜色相同的点 就把该点存入栈中 最后处理栈中的点 判断此点是否合法 不合法 取反 取反后再判断相邻点是否合法 ...

  10. HDU 1255 覆盖的面积 (扫描线 线段树 离散化 矩形面积并)

    题目链接 题意:中文题意. 分析:纯手敲,与上一道题目很相似,但是刚开始我以为只是把cnt>=0改成cnt>=2就行了,. 但是后来发现当当前加入的线段的范围之前 还有线段的时候就不行了, ...