ch01:
===================================== java J2SE 桌面应用的开发 JAVA SE corejava J2EE 企业级开发 JAVA EE J2ME 手机应用的开发 JAVA ME SDK software development kit 软件开发包 函数库或者工具等 JDK java development kit 是面向开发人员的,java开发工具 JRE java runtime enviroment java运行环境,是面向应用程序使用者的 API application program interface 应用程序编程接口 API说明文档 windows下的环境变量的配置
JAVA_HOME:JDK安装的目录路径
C:\Program Files\Java\jdk1..0_74 CLASSPATH:类加载时候查找的字节码路径
. PATH:JDK安装目录里面的命令目录
...;%JAVA_HOME%\bin JDK安装后的目录结构: bin:java的相关命令
java javac jar javadoc javap javah db:java提供的数据库 demo/sample:java代码的一些示例 include:C语言的头文件等内容 jre:java的运行环境 lib:java所用的基本的jar包 java的特点: 简单性:(相对应C和C++来讲)java不需要程序员操作内存
跨平台:一次编译,到处运行 (JVM) 多线程:其他语言的多线程一般是系统级别的,java的多线程是语言级别的 gc
垃圾回收器:java中有一个线程,专门负责JVM中垃圾内存的释放 垃圾:没有引用的内存节点 垃圾回收的算法 注意:垃圾回收有自己的算法,我们是不能控制垃圾回收机制的,虽然有和垃圾回收相关的方法:java.lang.System.gc() java.lang.Runtime.gc(),但是还是无法控制垃圾回收机制 在ch01下面建一个文件HelloWorld.java 文件内容如下: public class HelloWorld{ public static void main(String[] args){
System.out.println("hello world");
} } 写完后保存,然后到终端里面编译HelloWorld.java 注意路径:自己的当前位置和HelloWorld.java文件所在的位置是不是一致 javac HelloWorld.java 编译完了之后,会在当前目录下,生成一个文件叫HelloWorld.class 最后我们运行的文件就是这个HelloWorld.class 这样来运行HelloWorld.class文件:
java HelloWorld 注意:运行的时候一定不要加后缀名 .class 这样运行的前提是:XXX.java文件中 没有写包(package)名 编写的java文件要以XXX.java命名
javac XXX.java (注意当前路径和java文件路径) XXX.java(源文件)
编译完后会生成一个XXX.class(字节码文件) 运行这个java代码
java XXX (后面不加.class) 可以把字节码文件打成jar包
jar -cvf hello.jar HelloWorld.class 类加载: 双亲委托机制 启动类加载
$JAVA_HOME/jre/lib 扩展类加载
$JAVA_HOME/jre/lib/ext 本地类加载 classpath Hello.class JVM 类加载-->字节码验证-->JIT运行 字节码验证:
代码要符合JVM的规范
代码破坏计算机的系统或者硬件
栈不能溢出
方法的参数类型要正确
类型转换要正确 java类名和文件名的关系: 一个java源文件(.java)中,可以有好多个类(class),但是,最多只能有一个类(class)被public修饰 如果有一个类被public修饰,那么这个源文件(.java)的名字就必须和这个被public修饰的类的名字一致。
注意,首字母大写是编程规范,不是强制要求。 java文件中的三个顶级元素: package
.最终会是以文件夹的形式体现出来(有什么包,就必须有什么文件夹,运行的时候.class文件必须在这个文件夹下面)
. .java文件中有多个package的时候,用.分割并且结尾用;号结束 例如:(com.briup.test;)
.包也是java中类的标识的一部分,确定某一个类是通过包名加类名来唯一确定的 比如运行java类的时候:
java package.类名 (java com.briup.test.HelloPackage) import
.导包用的关键字
.如果你想在当前这个类使用其他的类,那么就必须通过这个关键字,把那个类导入进来
. java.lang包下面的类可以直接使用,不用导入.
. 和当前这个类位于同一个包下面的类,也不需要导入,可以直接使用 class
java中标识一个类的关键字
(java类中可以没有package,也可以没有import,但是一定会class) 编写带包名的类 HelloPackage.java package com.briup.test; public class HelloPackage{ public static void main(String[] args){
System.out.println("hello world");
System.out.println("hello world");
System.out.print("hello world");
}
} 直接编译 javac HelloPackage.java 然后运行 java HelloPackage 报错!!! 在当前(ch01)目录下面建立文件夹 com/briup/test
然后把HelloPackage.class文件剪切到了这个test目录里面 然后在ch01目录下运行:
java com.briup.test.HelloPackage 以上建立文件夹并且把.class文件剪切到相应的文件夹里面的操作,我们可以用命令在编译的时候实现 javac -d . HelloPackage.java -d 表示编译的同时生产和这个.java文件中定义的包名相一致的是文件夹结构,
. 表示在当前目录下生产这个文件夹(这个不一定非是. 也可以是其他路径) 最后编译完成后的.class文件也会自动的放进生产的文件夹里面 然后我们之间用package.类名去运行就可以了 java com.briup.test.HelloPackage 注意:没有main方法的类是不能直接运行的
main的形式是固定的(大体是固定,之后会看到改动一些指定地方也是可以的)
public static void main(String[] args){
......
} 因为main方法是程序的入口,要直接运行的那个类,类加载之后,JVM没有在这个类中找到main方法,那么就会报错 JVM只会运行*java命令后面*指定的类中的main方法(如果没有这个方法就报错)
java com.briup.test.HelloWorld

java_day01的更多相关文章

随机推荐

  1. Bootstrap-CSS:目录

    ylbtech-Bootstrap-CSS:目录 1.返回顶部 1.   2. 2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1.   2.   6.返回顶部   7.返回顶部 ...

  2. 2019-8-12未命名文件 sdfsf

    2019-8-12未命名文件 sdfsf 新建模板小书匠 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 小书匠主按钮>模板 里的模板管理来改变新建文章的内容.sdfsdfsdf

  3. Eclipse使用git发布项目到github

    因为一直都在使用svn,今天尝试了下git,记录下来既是方便自己以后查看,也是分享一些经验! 废话不多说,撸起袖子就是干!!! 1.选中要上传的项目右键 2.选中git 3.在图上打钩,点击所要上传的 ...

  4. python3将汉字转换为大写拼音首字母

    利用pypinyin包 实现 import pypinyin a = pypinyin.pinyin('你好世界', style=pypinyin.FIRST_LETTER) b = [] for i ...

  5. 如何把本地文件上传至github?

    (都说git好用,但我觉得git把我弄得像个git……在反反复复用git bash的命令行上传失败了N次之后,终于可以用命令行把文件上传到GitHub了 这中间,还要感谢网络上的各种git教程!!!) ...

  6. three中的着色器示例

    其实在3D引擎/库的帮助下,我们做webgl开发的难度已经很大大地降低了,熟悉相关API的话,开发一个简单的3D程序可以说是很轻松的事情. 在我看来,webgl的核心就是着色器(顶点着色器.片元着色器 ...

  7. python的I/O编程:文件打开、操作文件和目录、序列化操作

    1 文件读写 1.1 打开文件: open(r'D:\text.txt') 1.2 文件模式 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读写模式 1. ...

  8. 【Aizu - 0558】Cheese(bfs)

    -->Cheese 原文是日语,这里就写中文了 Descriptions: 在H * W的地图上有N个奶酪工厂,每个工厂分别生产硬度为1-N的奶酪.有一只老鼠准备从出发点吃遍每一个工厂的奶酪.老 ...

  9. Linux 基础整理

    Linux系统的启动过程大体上可分为五部分:内核的引导:运行init:系统初始化:建立终端 :用户登录系统. 用户登录 Linux的账号验证程序是login,login会接收mingetty传来的用户 ...

  10. python3.6调用c语言动态编译文件 c语言编译可执行文件和动态编译等

    1.c的代码 dfunc.c #include<stdio.h> int dgfunc(int n) { ){ ; }else{ )+dgfunc(n-); } } 2.动态编译 cmd ...