[Basic] The most basic things about java

 

[Basic] The most basic things about java

1 数据类型

 

1.1 基本类型, 针对32位系统

 

1.1.1 C

在C语言中数据类型, 其中整型数据都能够被signed, 和unsigned修饰:

 
Data type number of bit
char 8
short int 16
int 32
long int 32
long long 64
float 32
double 64

1.1.2 Java

 
Data type number of bit
boolean true or false
byte 8
short 16
int 32
long 64
char 16 (unsigned)
float 32
double 64
null special type

1.2 非基本类型

 

1.2.1 C

struct, enum, FILE

1.2.2 Java

class, interface, enum

2 操作符

 

2.1 算术操作符

+, -, *, /, %, ++, --

C语言中, 这些算术操作符都能用于整型, 其中%不能用于浮点型

java语言中, 这些算术操作符均能用于整型以及浮点型数据. 并且加号还被扩展用于String类型

2.2 关系操作符

>, >=, <, <=, ==, !=适用于整型以及浮点变量

2.3 逻辑操作符

 

2.3.1 C

&&, ||, !,

2.3.2 Java

&, |, ^, ||, &&, ! 均为逻辑操作符, 其中&与&&的区别是, 对于一个表达示: (expresion1) & (expresion2), expression1(2)均执行; 如果采用&&操作符, 那么expression1为假时, expression将不执行.

2.4 位操作符

 

2.4.1 C

&, |, ^, , , ~

2.4.2 java

&, |, ^, >>, >>>, <<, ~

2.5 条件操作符

?:

3 控制流

 

3.1 IF

C和java中相同,

  1. if (condition) {
  2. statement_sequence;
  3. }
  4. else {
  5. statement_sequence;
  6. }

3.2 SWITCH and CASE

c和java中相同

  1. switch (expression) {
  2. case constant1:
  3. statement_sequence;
  4. break;
  5. case constant2:
  6. statement_sequence;
  7. break;
  8. case constantn:
  9. statement_sequence;
  10. break;
  11. default:
  12. setatement_sequence;
  13. }

3.3 WHILE

C和java中相同,

  1. while(condition) {
  2. statement_sequence;
  3. }
  4.  
  5. do{
  6. statement_sequence;
  7. } while(condition);

3.4 FOR

C和java中类似,

  1. for(initialization; condition; iteration) {
  2. statement_sequence;
  3. }

3.5 BREAK and CONTINUE

break和continue在C和java的功能不同, 在c中只能跳出一重循环, 而java中, 借用label, 能够跳出多重循环.

  1. for (initialization;condition;iteration) {
  2. one:
  3. {
  4. two:
  5. {
  6. three:
  7. {
  8. System.out.println("\ni is " + i);
  9. if (i==) {
  10. break one;
  11. }
  12. if (i==) {
  13. break two;
  14. }
  15. if (i==) {
  16. break three;
  17. }
  18.  
  19. System.out.println("Won't print");
  20. }
  21. System.out.println("After three");
  22. }
  23. System.out.println("After two");
  24. }
  25. System.out.println("After one");
  26. }

4 数据作用域

 

4.1 C

和C语言作用域相关的关键字有: static, extern

函数外的static限定变量的作用域为文件内部 (蓝色), 函数外其他的变量的作用域为全局作用域 (红色), 在其他的文件中可以通过声明extern的方式进行访问, 函数内部的变量的作用域为函数内部 (绿色), 区块内变量的作用域为区块内部 (黄色).

4.2 Java

和java语言作用域相关的关键字有: protected, private, public, package.

 
  Private Member Default Member Protected Member Public Member
in same class Yes Yes Yes Yes
in same package (subclass) No Yes Yes Yes
in same package (non-subclass) No Yes Yes Yes
in different package (subclass) No No Yes Yes
in different package (non-subclass) No No No Yes

----

5 运用JUnit进行测试

 

5.1 环境搭建

IDE或者是一个更好的选择, Ant也是另一个选择, 这里使用了现成的Makefile资源, 实现对java项目的编译以及运行, 具体参见: Java Makefile: A simple replacement for Ant.

当一步一步完成上述的步骤后, 就能够编译运行具有main函数的项目了. 要运行Junit还得进行细微的更改.

  1. 在project makefile中添加一个变量: JunitRunParameters = junit.textui.TestRunner
  2. 在project makefile中将JavaLibraries赋值为junit.jar hamcrest-core.jar
  3. 在Main Makefile中, 在runjava下一行, 在$(JavaMainClass)前添加$(JunitRunParameters), 并将JavaRunOptions的-classpath改为-cp
  4. 最后, 可以通过make进行编译, 以及make run进行运行了.

5.2 一个简单的例子

  1. 假设你想开发一个Student的类来记录学生的信息, 首先可以从测试代码出发, 先写个测试:
  1. // src/TestCase/StudentTest.java
  2. package TestCase;
  3. import junit.framework.TestCase;
  4. import MainProject.Student;
  5.  
  6. public class StudentTest extends TestCase {
  7. public void testCreate() {
  8. final String student1Name = "Zhang san";
  9. Student student1 = new Student(student1Name);
  10. assertEquals(student1Name, student1.getName());
  11.  
  12. final String student2Name = "Li si";
  13. Student student2 = new Student(student2Name);
  14. assertEquals(student2Name, student2.getName());
  15. }
  16. }
  1. 接着写相应的实现代码:
  1. // src/MainProject/Student.java
  2. package MainProject;
  3.  
  4. public class Student {
  5. private String name;
  6.  
  7. public Student(String name) {
  8. this.name = name;
  9. }
  10.  
  11. public String getName() {
  12. return name;
  13. }
  14. }
  1. 然后分别在MainProject目录和TestCase目录下运行 makeg *.java, 其中makeg的bash shell代码如下:
  1. file="Makefile"
  2.  
  3. rm -f $file
  4. touch $file
  5.  
  6. echo "Source = \\" >> $file
  7.  
  8. for SourceFile in $* #(*.c *.cc *.java *.f *.gif *.jpg)
  9. do
  10. echo "\t " ${SourceFile} "\\" >> $file
  11. done
  12.  
  13. echo "" >> $file
  14.  
  15. echo "RmiSource =" >> $file
  16. echo "" >> $file
  17. echo "Main =" >> $file
  18. echo "" >> $file
  19. echo "include" '$(DEV_ROOT)/Makefile' >> $file
  20. echo "" >> $file
  1. 然后将TestCase/Makefile的Main变量改为StudentTest, 并将Project Makefile中的package变量进行相应的更改, 运行make进行编译, 然后运行make run即可

6 浏览java library, 了解它能干什么

 

6.1 String

由String创建的对象是不能被更改的. 它能够干的事情有:

  1. 获得长度
  2. 字符串连接
  3. 字符串和其他数据类型连接
  4. 特定位置的字符
  5. 提取子字符串
  6. 转变成为Byte的
  7. 转变成字符串数组
  8. 和其他字符串比较是否相等
  9. 字符串比较, 字符串匹配
  10. 字符串查找
  11. 字符串取代
  12. 去除两端的空格
  13. 字符串分割

6.2 各种容器类

主要方便用于数据结构创建, 有列表, 图, 队列, 向量, 集合, 栈等

6.3 java.lang中的不同内容

主要包括, 不要包括, 字符串处理, 类, 数据类型, 多线程, 枚举类等

6.4 文件输入输出, java.io

 

6.5 网络编程, java.net

 

6.6 小型应用程序, 界面开发, java.awt, java,applet

 

6.7 等等

 

Date: 2014-04-18 Fri

Author: Zhong Xiewei

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0

[Basic] The most basic things about java的更多相关文章

  1. 224. Basic Calculator + 227. Basic Calculator II

    ▶ 两个四则表达式运算的题目,第 770 题 Basic Calculator IV 带符号计算不会做 Orz,第 772 题 Basic Calculator III 要收费 Orz. ▶ 自己的全 ...

  2. Basic认证

    Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP ...

  3. Visual Basic了解

    Visual Basic是一种由微软公司开发的结构化的.模块化的.面向对象的.包含协助开发环境的事件驱动为机制的可视化程序设计语言.这是一种可用于微软自家产品开发的语言.它源自于Basic编程语言.V ...

  4. HTTP Basic auth认证

    Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP ...

  5. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  6. [LeetCode] Basic Calculator 基本计算器

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  7. 使用 Async 和 Await 的异步编程(C# 和 Visual Basic)[msdn.microsoft.com]

    看到Microsoft官方一篇关于异步编程的文章,感觉挺好,不敢独享,分享给大家. 原文地址:https://msdn.microsoft.com/zh-cn/library/hh191443.asp ...

  8. Http authentication(BASIC, DIGEST)

    Http authentication....BASIC: In the context of an HTTP transaction, basic access authentication is ...

  9. [LeetCode] Basic Calculator III 基本计算器之三

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

随机推荐

  1. 美帝的emal to message gateway

    Provider Email to SMS Address Format AllTel number@text.wireless.alltel.com AT&T number@txt.att. ...

  2. Dojo Data Store——统一数据访问接口

    原文地址:http://www.infoq.com/cn/articles/wq-dojo-data-store 无论在传统的桌面应用还是在主流的互联网应用中,数据始终占据着软件应用中的核心地位.当下 ...

  3. SQL Server 存储(3/8):理解GAM和SGAM页

    我们知道SQL Server在8K 的页里存储数据.分区就是物理上连续的8个页.当我们创建一个数据库,数据文件会被逻辑分为页和区,当用户对象创建时,页会分配给它用来存储数据.GAM(Global Al ...

  4. nginx(4、缓存)

    nginx提供内置的缓存功能,对静态文件,如html\css\js等能够缓存在本地,即nginx服务器的某个目录下. 其配置主要是两部分: 1.在http下配置一个缓存路径: proxy_cache_ ...

  5. MySQL5:性能优化

    性能优化 优化MySQL数据库是数据库管理员和数据库开发人员的必备技能.MySQL优化,一方面是找出系统的瓶颈,提高MySQL数据库的整体性能:一方面需要合理的结构设计和参数调整,以提高用户操作响应的 ...

  6. InputStream与InputStreamReader的区别

    InputStream是字节流,多用于读取二进制数据 InputStreamReader是字符流,多用于读取文本文件.有不同的编码方式,如utf8等.可以在构造的时候指定编码方式. 例如,两者都有一个 ...

  7. 解决方法of未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    在开发的一个报表转换功能涉及到Excel97-2003(.xls)文件的导入.使用oledb来读取excel数据.代码为: public static DataSet LoadDataFromExce ...

  8. 移动端基于HTML模板和JSON数据的JavaScript交互

    写本文之前,我正在做一个基于Tab页的订单中心: 每点击一个TAB标签,会请求对应状态的订单列表.之前的项目,我会在js里使用 +  连接符连接多个html内容: var html = ''; htm ...

  9. Java集合框架的总结

    本篇文章先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析.当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进 ...

  10. iOS开发备忘录:属性列表文件数据持久化

    属性列表文件是一种XML文件,Foundation框架中的数组和字典等都可以于属性列表文件相互转换. NSArray类常用读写属性列表文件的方法: +arrayWithContentsOfFile:类 ...