• [Basic] The most basic things about java


    [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 typenumber of bit
    char 8
    short int 16
    int 32
    long int 32
    long long 64
    float 32
    double 64

    1.1.2 Java

     
    Data typenumber 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中相同,

    if (condition) {
      statement_sequence;
    }
    else {
      statement_sequence;
    }
    

    3.2 SWITCH and CASE

    c和java中相同

    switch (expression) {
    case constant1:
        statement_sequence;
        break;
    case constant2:
        statement_sequence;
        break;
    case constantn:
        statement_sequence;
        break;
    default:
        setatement_sequence;
    }
    

    3.3 WHILE

    C和java中相同,

    while(condition) {
        statement_sequence;
    }
    
    do{
        statement_sequence;
    } while(condition);
    

    3.4 FOR

    C和java中类似,

    for(initialization; condition; iteration) {
        statement_sequence;
    }
    

    3.5 BREAK and CONTINUE

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

    for (initialization;condition;iteration) {
    one:
        {
        two:
            {
            three:
                {
                    System.out.println("
    i is " + i);
                    if (i==1) {
                        break one;
                    }
                    if (i==2) {
                        break two;
                    }
                    if (i==3) {
                        break three;
                    }
    
                    System.out.println("Won't print");
                }
                System.out.println("After three");
            }
            System.out.println("After two");
        }
        System.out.println("After one");
    }
    

    4 数据作用域

     

    4.1 C

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

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

    4.2 Java

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

     
     Private MemberDefault MemberProtected MemberPublic 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的类来记录学生的信息, 首先可以从测试代码出发, 先写个测试:
    // src/TestCase/StudentTest.java
    package TestCase;
    import junit.framework.TestCase;
    import MainProject.Student;
    
    public class StudentTest extends TestCase {
        public void testCreate() {
            final String student1Name = "Zhang san";
            Student student1 = new Student(student1Name);
            assertEquals(student1Name, student1.getName());
    
            final String student2Name = "Li si";
            Student student2 = new Student(student2Name);
            assertEquals(student2Name, student2.getName());
        }
    }
    
    1. 接着写相应的实现代码:
    // src/MainProject/Student.java
    package MainProject;
    
    public class Student {
        private String name;
    
        public Student(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    }
    
    1. 然后分别在MainProject目录和TestCase目录下运行 makeg *.java, 其中makeg的bash shell代码如下:
    file="Makefile"
    
    rm -f $file
    touch $file
    
    echo "Source    = \" >> $file
    
    for SourceFile in $* #(*.c *.cc *.java *.f *.gif *.jpg)
    do
        echo "	 " ${SourceFile} "\" >> $file
    done
    
    echo "" >> $file
    
    echo "RmiSource =" >> $file
    echo "" >> $file
    echo "Main      =" >> $file
    echo "" >> $file
    echo "include" '$(DEV_ROOT)/Makefile' >> $file
    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
  • 相关阅读:
    页面跳转方式
    银行账号每4位插入一个空格
    .net 对称加密
    .net 非对称加密
    webpack-dev-server的cli使用
    你不能不知道的 6 个 Web 开发者工具
    String字符串提取指定内容
    SQLServer 复制表结构
    关于OMAPL138烧写程序的说明
    C程序结构
  • 原文地址:https://www.cnblogs.com/grass-and-moon/p/3700037.html
Copyright © 2020-2023  润新知