1.JVM(虚拟机)的运行过程
代码的装入
代码的校验
代码的执行(解释执行)
2.反编译工具
JAD
FrontEnd
3.java中的常量
字符常量 a’ , ‘8’,'\u0027'
字符串常量 “Hello World“,”123”, "Welcome \nXXX"
null常量 null常量只有一个值,用null表示,表示对象的引用为空
4.变量字节大小及有效取值范围
byte占用一个字节
short占用两个字节
int占用四个字节
long占用八个字节
float占用四个字节
double占用八个字节
char占两个字节
Boolean占一个字节,其取值只有两个,true和false。
5.类型转化
自动类型转换(也叫隐式类型转换)
强制类型转换(也叫显式类型转换)
类型转换的原理及什么时候要用强制类型转换
表达式的数据类型自动提升
所有的byte型、short型和char的值将被提升到int型。
6.java中的运算符
运算符共分以下几种:
算术运算符
赋值运算符
比较运算符
逻辑运算符
移位运算符
7.程序的流程控制
顺序结构
选择结构
循环结构
8.switch语句的选择结构
Switch (表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
…
case 常量表达式n:语句n;
default: 语句n;
}
default语句是可选的,它接受除上面接受值的其他值,通俗的讲,就是谁也不要的都归它。
case后面可以跟多个语句,这些语句可以不用大括号括起来 。
switch语句判断条件可接受int, byte, char, short型,不可以接受其他类型
一旦碰到第一次case匹配,就会开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,后面case条件下的代码都会被执行,直到碰到break语句为止。我们可以利用这个特点来用同一段语句处理多个case条件
9.与数组操作相关的函数
使用System.arraycopy()函数拷贝数组
用Arrays.sort 来排序数组
10.对象的产生
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的都是变量类型都是引用类型。
11.匿名对象
我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().sho();
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
我们经常将匿名对象作为实参传递给一个函数调用
12.this引用句柄的存放位置
每个成员方法内部,都有一个this引用变量,指向调用这个方法的对象.
13.函数的参数传递
—基本数据类型的参数传递
—引用数据类型的参数传递
14static静态变量
当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。
15static静态方法
在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。
静态方法不能以任何方式引用this和super关键字(super关键字在下一章讲解)。与上面的道理一样,因为静态方法在使用前不用创建任何实例对象,当静态方法被调用时,this所引用的对象根本就没有产生。
main() 方法是静态的,因此JVM在执行main方法时不创建main方法所在的类的实例对象,因而在main()方法中,我们不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员,这种情况,我们在以后的例子中会多次碰到。
16静态代码块
一个类中可以使用不包含在任何方法体中的静态代码块(static block ),当类被载入时,静态代码块被执行,且只被执行一次,静态块经常用来进行类属性的初始化。
类中的静态代码块被自动执行,尽管我们产生了类的多个实例对象,但其中的静态代码块只被执行了一次。当一个程序中用到了其他的类,类是在第一次被使用的时候才被装载,而不是在程序启动时就装载程序中所有可能要用到的类。
17理解main方法的语法
由于java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是public,又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接收一个String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数。
18如果函数的局部变量(函数的形参也是局部变量),内部类的成员变量,外部类的成员变量重名,我们应该按下面的程序代码所使用的方式来明确指定我们真正要访问的变量。
public class Outer
{
private int size;
public class Inner
{
private int size;
public void doStuff( int size)
{
size++; // 引用的是doStuff函数的形参
this.size++; //引用的是Inner类中的成员变量
Outer.this.size++; // 引用的Outer类中的成员变量
}
}
}
分享到:
相关推荐
这个压缩包文件"生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip"包含了多种编程语言实现的数据中心分析器组件,这表明该工具可能支持跨平台和多语言集成。以下是对这些编程语言在数据...
Java、.Net、PHP、Ruby 是四种广泛应用的编程语言,每种都有其独特的优势和应用场景。下面我们将逐一探讨它们的特点。 首先,Java 是企业级应用的首选,尤其在大型企业和中型企业中占据主导地位。Java 强大的后端...
1. **Ruby基础知识**:学习RoR前,了解Ruby的基础语法和特性是必要的,包括元编程、 Blocks、Procs、Lambdas等。 2. **Rails框架结构**:解释RoR的MVC架构,以及每个部分的作用,如Controller负责处理HTTP请求,...
Ruby on Rails for PHP and Java Developers(2007.8).part1.rar
Ruby on Rails for PHP and Java Developers(2007.8).part4.rar
Ruby on Rails for PHP and Java Developers(2007.8).part3.rar
Ruby on Rails for PHP and Java Developers(2007.8).part2.rar
Rails借鉴了PHP的快速开发能力以及Java的代码规整性,其核心理念是遵循DRY原则(Don't Repeat Yourself,即不重复自己)。Rails的出现使得Web开发过程更加高效和有组织,因此受到了业界的广泛关注。 在安装Ruby方面...
其设计理念受到了Java和PHP的影响,并逐渐成为Web开发领域的一股新兴力量。 - **创始人**:David Heinemeier Hansson被赞誉为“地球上最炙手可热的黑客”之一,获得过2005年度最佳黑客奖,并赢得了Jolt大奖。 - **...
涵盖了Python、JavaScript、Java、C#、C++、Ruby、PHP、Go和Rust等语言,展示了如何使用各自语言的特性和标准库来反转字符串。 适用人群 编程初学者:正在学习基本的字符串操作。 软件开发者:需要在项目中实现字符...
本文将深入探讨如何在C++、Java、JavaScript、PHP和Ruby这五种编程语言中检测并转换Zawgyi-One字体编码到Unicode,以确保跨平台的文本一致性。 1. **C++**: 在C++中,处理字符串通常涉及`std::string`对象。要检测...
学习Python或Ruby的选择对毕业设计尤其有利,它们可以极大地提高开发效率,除非项目特定要求使用Java或Objective-C(针对移动应用开发)。网络上有丰富的Python和Ruby学习资源,例如谷歌的Python课程和RubyLearning...
PHP和Java世界的双赢 本文将要讨论的是PHP和Java两个技术世界的融合,如何让它们双赢。...此外,WebSphere Mash还提供了一个基于Java实现的PHP 5.2运行时环境,类似于JRuby和Jython分别是Ruby和Python的Java实现。
PDFLib 7 是一款强大的库,专为编程语言如 C/C++、Java、Perl、PHP、Ruby 提供了创建和处理 PDF(Portable Document Format)文档的功能。这个中文参考手册是开发者的重要资源,它包含了详尽的文档和示例,帮助...
学习 Ruby 学习 Java 学习 C 学习 Servlet 学习 JSP 学习 SQL 学习 SQLite 学习 ASP 学习 ADO 学习 AppML 学习 VBScript XML 教程 学习 XML 学习 DTD 学习 XML DOM 学习 XSLT 学习 XPath 学习 XQuery 学习 XLink ...
1. **C/C++与Java的混合编程**:如果你有一个用C或C++编写的系统,但想要利用Java的特定功能,如图形界面、网络编程或数据库访问,JavaBridge可以帮助你在不重构原有代码的情况下实现这一目标。 2. **Web应用程序...
- 支持多种编程语言,不仅仅是 Java,还包括 PHP、Ruby、Android 等。 - Eclipse 的安装可以从 Eclipse 官网下载。 - 需要 JDK 支持才能进行 Java 开发。 #### Java 数据类型与变量 - **数据类型的初始化**: -...
appium 示例代码(dotnet、java、node、perl、php、python、ruby 等)请参考https://github.com/appium/appium/tree/master/sample-code而不是此存储库示例代码该存储库包含主要用于 appium 功能测试的示例应用程序...
Python,PHP,C#,Java,C ++,F#,Ruby,Scala,Node.js中的AES加密 描述 该项目的目标是提供简单,可移植且兼容的代码(用Python加密的数据可以用PHP解密,依此类推)。 使用的加密算法是CBC和CFB模式下的AES。 ...