走进Java

先百度下学习方案。

 

在线文档

http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4

http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

 

菜鸟教程

http://www.runoob.com/

http://www.runoob.com/java/java-tutorial.html

跟它学吧。。

 

javac

java

编译、运行,第一课必然是这点,但不用链接吗?现在还不知道。

javac编译出的文件是.class,似乎不是最终的可执行程序,但可以用java命令执行,难度java的输出文件是.class?这似乎是类的obj吧。

 

JavaSE

JavaEE

JavaME

标准版、企业版、移动版。

 

特性:

1. 简单

没有操作符重载、多继承、自动的强制类型转换、指针。托管内存。

2. 面向对象、使用接口

接口支持多继承,类不支持。

Java支持全面的动态绑定,不懂。

3. 网络支持, java net

URL, URLConnection, Socket,ServerSocket, RMI(远程方法激活)

4. 健壮

强类型、异常、内存托管。处处与C++对比。

5. 安全

网络环境下的 ClassLoader , SecurityManager。

6. 中立,无非就是虚拟机机制的跨平台特性。

7. 移植,同上。

8. 解释性语言,类似.net

9. 高性能,C++笑了。

10. 多线程。

这大概是我在C++里的一个痛点了。

synchronized 线程同步机制

11. 动态

Java类的动态加载。

 

有些明白为什么编译出来是.class了,这就是编译出来的文件,好像java还有包的概念,这就是它的结构吗?

 

注释和C++一样。 // /* */

对象、类、方法、实例变量

类名首字母大写

方法名首字母小写

源文件名与类名相同

入口 public static void main(String args[])

 

标识符 没什么特别

 

修饰符

default

是switch的默认分支?那应该是在关键字部分的作用而不是修饰符。那是默认构造函数?像C++11那样?

strictfp

 

变量 :

类变量(静态变量)

按Java的规则,没有全局变量,只能是静态变量了。

 

数组

 

枚举与c#没什么区别

不对,Java中可以在枚举中构造方法、变量、构造函数,也即枚举也是一个类型。

 

关键字

boolen, 不是bool 需记一下

break
跳出循环或者label代码段,label代码段,比较陌生

const 未使用。那怎么定义常量呢?

extends 表示一个类是另一个类的子类,怎么用呢?

final
表示一个值在初始化之后就不能再改变了
表示方法不能被重写,或者一个类不能有子类。这个解释我懂,什么叫一个值初始化之后就不能再改变了呢?常量?

goto 未使用,即没有goto 那也就是说没有const了,还是怎么定义常量呢

implements
表示一个类实现了接口

import
导入类

instanceof
测试一个对象是否是某个类的实例,类似 iskindof 吧

interface
接口,一种抽象的类型,仅有方法和常量的定义。定义方法我明白,常量也可以在接口中定义?

native
表示方法用非java代码实现,什么鬼?调用C++什么的非托管方法?

package
一系列相关类组成一个包,不懂。

strictfp
浮点数比较使用严格的规则,不懂。

synchronized
表示同一时间只能由一个线程访问的代码块,线程同步,概念懂。

throws
定义方法可能抛出的异常。概念知道。

transient
修饰不要序列化的字段,不懂。

volatile
标记字段可能会被多个线程同时访问,而不做同步,公共数据嘛。

刚LOL了一把,继续。

JAVA特性:

多态、继承、封装、抽象、类、对象、实例、方法、消息解析。

一个源文件只能有一个public类,可以有多个类。源文件名与public类相同。

如果一个类定义在某个包内, 则首行语句为 package 包名

import 在package之后,类定义之前。

package和import对整个文件中的类生效。

 

包: 给类分类,看定义类似名称空间。

测试代码:

package Employ;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.*;

/**
 *
 * @author y
 */
public class Employee {
    String name;
    int age;
    String designation;
    double salary;

    // 构造函数,java里叫构造器
    public Employee(String name)
    {
        this.name = name;
    }

    // 设置age
    public void empAge(int empAge){
        this.age = empAge;
    }

    // 设置designation
    public void empDesignation(String empDesig){
        this.designation = empDesig;
    }

    // 设置salary
    public void empSalary(double empSalary){
        salary = empSalary;
    }

    // 打印
    public void printEmployee()
    {
        System.out.println("Name:" + name);
        System.out.println("Age:" + age);
        System.out.println("Designation:" + designation);
        System.out.println("Salary:" + salary);

    }
}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Employ;

import Employ.Employee;

/**
 *
 * @author y
 */
public class EmployeeTest {
    public static void main(String args[]){
        // 构造两个employee
        Employee empOne = new Employee("小杨");
        Employee empTwo = new Employee("大杨");

        // 分别调用
        empOne.empAge(2);
        empOne.empDesignation("小杨小杨");
        empOne.empSalary(1000);
        empOne.printEmployee();

        empTwo.empAge(30);
        empTwo.empDesignation("大杨大杨");
        empTwo.empSalary(400);
        empTwo.printEmployee();
    }
}

 

顺便测试了运行配置,可以在同一个项目里选择启动的入口类。一个项目中可以有多个main()。c++就不行了。

 

数据类型

java好像没有unsignd 类型?

所有数字类型有 SIZE  MAX_VALUE MIN_VALUE三个静态变量,定义了类型的位数、最大值、最小值。

有void类型,无法操作。java.long.Void

 

果然没猜错,java使用final定义常量。

这里的转义,以后会很有用:

http://www.runoob.com/java/java-basic-datatypes.html

 

访问修饰符,

default,默认,包内可见类似c#的internal

private,public,

protected,与c++和c#不同的是,对包内的类和所有子类都可见。

 

接口,接口里的变量默认为 public static final, 方法默认为public

类和接口不能声明为private

Java的main()必须是公有的, public static 。

protected也不能声明类和接口。声明的成员可以被包内的类可见。接口的成员和方法也不能声明为protected

 

父类public,子类必须public

父类protected, 子类可以public, protected。

父类默认,子类可以private

 

final , 类不能被继承,方法不能被重新定义,变量为常量。

final修饰的引用,不能指向其他对象,但可以被修改。即,这相当于指针常量而不是常量指针。

 

抽象方法必须在抽象类中,抽象类可以不包含抽象方法。

使用extends继承类, implement实现接口,略感别扭。

序列化的对象包含被transient修饰的实例变量时,java虚拟机(JVM)跳过该特定的变量

 

今天到此,

学习了 基础语法,对象和类,数据类型、变量、修饰符。

明天到运算符处。

http://www.runoob.com/java/java-operators.html

时间: 2024-10-08 19:35:00

走进Java的相关文章

《深入理解Java虚拟机》读书笔记---第一章 走进Java

一.为什么要读此书 <深入理解Java虚拟机>这本书读了很多次,每次读都会有不一样的感受.首先说一下为什么要读这本书,如果把Java比喻成乾坤大挪移,那了解虚拟机的工作原理就是练习九阳神功,java语言是招式,对虚拟机的认识是内功心法,只有内功心法强大,所使的招式才强大,这就是为什么阳顶天只能把乾坤大挪移练到第四层,而张无忌能练到第七层.由于java虚拟机的强大,把很多功能都隐藏了,例如内容管理,垃圾回收机制等,使得很多java程序猿对这一块的知识所有缺失,编码的时候也是似懂非懂的,以至于遇到

java 虚拟机 学习笔记 第二章 走进java

java 获得获得认可的原因 结构严谨.面向对象 一次编写 到处运行 相对安全的内存管理和访问机制 避免绝大部分的内存泄露和指针越界 运行时编译即优化 jdk是用于支持java程序开发的最小环境 时间表 1991    oak 1995  oak 改为java 1996 4  java one 1997  sun jdk 1.1    jdbc jar javabeas  rmi  内部内  反射 2002  2月13  jdk1.4  正则表达式  异常连 NIO  日志类  xml 2004

001 走进 Java

一. java优点 摆脱了硬件平台的束缚,实现了"一次编写,到处运行"的理想: 提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题: 实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能: 有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能 二.java技术体系 Java程序设计语言 各种意见平台上的Java虚拟机 Class文件格式 Java API类库 来自商业机构和开源

走进Java(一)J2SE

一.Java是什么 Java是Java语言和Java平台的总称.Java语言和C#一样,核心都是oo,而且比较而言,Java做的更好. Java由四方面组成: ? Java编程语言,即语法. ? Java文件格式,即各种文件夹.文件的后缀. ? Java虚拟机(JVM),即处理*.class文件的解释器. ? Java应用程序接口(Java API). Java分为三个体系,分别为: Java SE(J2SE,Java2 Platform Standard Edition,标准版,主要用于桌面应

走进Java中的持有对象(容器类)之一 容器分类

Java容器可以说是增强程序员编程能力的基本工具,本系列将带您深入理解容器类. 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] clazs = new Class[10]; 然而,一般情况下,我们并不知道要创建多少对象,或者以何种方式创建对象.数组显然只能创建固定长度的对象,为了使程序变得更加灵活与高效,Java类库提供了一套完整的容器类,具备完善

1.走进java(本次阅读基于jdk1.7)

本次阅读基于jdk1.7 1.1.java虚拟机类别和发展史: Sun Classic / Exact VM:世界上第一款商用Java虚拟机,Sun公司发布JDK 1.0,Java语言首次拥有了商用的正式运行环境,这个JDK中所带的虚拟机就是Classic VM Sun HotSpot VM:提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机.但不一定所有人都知道的是,这个目前看起来"血统纯正"

走进java对象的门口

从题目中可以看出来,今天只是java面向对象的入门级探讨.看看今天的内容. 为什仫说英语呢?我的英语从三年级都不好,一直到现在,但我们的未来职业要求我们必须懂英语,就算不能像马云一样溜吧,但最起码能看懂英语版的专业书籍.其实,专业上的英语挺简单的,如果你能静下心看看那些书,你会发现,书上的语法很简单,词汇还都是高中的,只有极个别的专业词汇有点难,记住就好啦,反正不多,所以,这里说几个英语名词. 面向对象三大特性:encapsulation:封装  inheritance:继承  polymorp

1.走进java

1.类型: javaME(java micro edition)     java微型版      适用小型设备 javaSE(java standand edition) java标准版 适用桌面系统 javaEE(java enterprise edition) java企业版 适用服务器程序和服务 注:javaBase介绍的javaSE 2.开发包JDK简介及安装 JDK<JRE<JVM JVM(java vritual machine) java虚拟机 将字节码转换成机器指令 JRE(

走进Java(二)J2EE规范解释

一.背景 起初,各个公司都开发出了自家的组件,可是用户使用过程中,各家的组件不通用,不兼容.所以提出J2EE协议,它就是基于Java技术的一系列标准. J2EE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它的功能非常全面,用于数据处理和服务器端应用.它对开发基于Web的多层应用提供了功能支持.使用J2EE技术部署的应用是:"编写一次,随处运行". 客户端(层)的组件包括Applet.Application.Html三种. 应用服务器,就是封装好的组件.协议