`
lxr215
  • 浏览: 60460 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JAVA SE基础

    博客分类:
  • Java
阅读更多

昨天晚上开始学习传智播客的JAVA SE基础视频,到今天晚上已经把基础视频1-5看完了,因为之前段段续续的自学过C和JAVA,所以前面这几讲都看得挺快的,第5讲讲多线程,就有些复杂了。

2009-12-20 00:08:37


OS环境变量:OS定义的变量,可被应用程序使用。

set:查看

set path=%path%;....\jdk\bin;// =两边不能有空格

在命令行窗口下设置时,不影响其他程序,只对当前命令行窗口有效。

path:java命令路径

classpath:JVM查找类的路径。一般要加上.;表示当前路径。classpath中不能有空格,也不能有中文字符。


java -verbose:可以查看JVM启动加载过程。


JVM运行过程:

代码装入(ClassLoader)---->代码校验(字节码验证)---->执行(解释器)


反编译工具

JDK自带的javap命令可以反编译,可惜反编译的结果只有方法声明,无方法的具体内容,用java的反射功能自己也可以实现。

JAD工具(很强大,让我震撼了一把,不知道实现的原理是什么):jad -s java Test.class。 居然可以完全反编译,得到完整的源码。

FrontEnd:JAD的GUI版


java标示符:字母、数字、下划线、$(有点新奇)组成,不能以数字开头,不能是关键字。

 


所以byte、short、char运算时,都先转换为int类型。

System.out.println('a'+1); // 输出98,因为'a'先转为int

System.out.println(""+'a'+1); // 输出a1


java不允许嵌套定义变量(和C/C++不同)。


<<左移, >>右移, >>>无符号右移。 (java没有无符号数)。

移位运算适用于byte, short, char, int, long,低于int的,都先自动转换为int。

对int移位a>>b,先将b对32去模,a>>33和a>>1效果一样。

对long移位a>>b,先将b对64去模,a>>65和a>>1效果一样。


switch():只接受byte, short, char, int, enum型。


数组:java数组都有个length属性。

数组拷贝:JAVA SE 1.6之前使用System.arraycopy(),1.6后可以使用java.util.Arrays.copyOf(),看Arrays的源码,可知Arrays.copyOf()实际内部还是调用System.arraycopy()。

数组排序:Arrays.sort()方法。


java的finalize方法:垃圾回收器调用。

System.gc():运行垃圾回收器,等效于Runtime.getRuntime().gc()

静态方法中不能访问非静态成员。


内部类:

Outer outer = new Outer();

Outer.Inner inner = Outer.new Inner();


接口:

接口中方法都是public,变量默认是public static final。


多线程

多任务系统中,每个独立执行的程序称为进程。一个进程可以包含一个或多个线程,一个线程就是一个程序内部的一个执行线索。

java实现多线程方法:1、继承Thread类 2、实现Runnable接口。 都要重写run()方法,然后调用start()就可以了。

后台线程(守护线程?)与联合线程:

后台线程:对某个线程对象在启动(调用start)之前调用了setDaemon(true)方法,这个线程就变成了后台线程。

对java程序来说,只要还有一个前台线程在运行,这个进程就不会结束,如果一个进程中只有后台线程运行,这个进程就会结束。

pp.join()作用:把pp所对应线程合并到调用pp.join()语句的线程中。

多线程同步:

方法1:代码块同步 synchronized(object){} //object为监视器对象,为任一对象的引用,不能放到run()中定义。

方法2:函数同步 synchronized f(){} //监视器对象为this

(同步关键:监视器对象应是同一个对象)。

死锁:

比喻:中国人拿了美国人的刀叉,等待筷子,而美国人又拿了筷子,等待刀叉。结果大家都拿不到东西。

线程间通信:

生产者-消费者问题。

synchronized(o) {

o.wait();

o.notify();

}


线程生命周期:

线程生命周期

0
0
分享到:
评论

相关推荐

    java se基础知识

    ### Java SE 基础知识详解 #### Java 的特点与体系结构 Java 是一种流行的编程语言,具有多种显著特点: - **面向对象**:Java 支持封装、继承和多态等面向对象特性,便于构建复杂的软件系统。 - **跨平台**:Java...

    Java se 基础学习练习代码 Java学习资料

    这份"Java se 基础学习练习代码"是针对Java初学者精心设计的学习资源,涵盖了Java语言的基础知识和实践技能。它可以帮助你系统地理解和掌握Java编程语言的关键概念。 在Java SE的学习中,首先你需要理解基础语法,...

    java se 基础练习 Java学习资料

    以上知识点构成了Java SE基础的主体内容,通过"java se 基础练习"的学习资料,你可以逐步深入理解并熟练掌握这些概念,为后续的Java编程学习打下坚实的基础。同时,实践是检验理解的最好方式,所以记得动手编写代码...

    java SE基础学习项目 Java学习资料

    这个"java SE基础学习项目"显然是一份针对初学者或者需要巩固基础的开发者的学习资源。在这个项目中,你可能会找到一系列的教程、代码示例、练习题和可能的项目实践,以帮助你深入理解Java编程语言的基础概念。 ...

    java SE基础练习 Java学习资料

    这个“java SE基础练习”资料包显然是为了帮助初学者或者希望巩固基础的开发者准备的。它可能包含了源代码示例、教程文档、练习题等丰富的学习资源。下面我们将深入探讨Java SE的一些关键知识点。 1. **基础语法**...

    Java SE 基础 练习 Java学习资料

    这份"Java SE 基础 练习 Java学习资料"包含的资源将帮助你深入理解Java编程语言的基础概念和实战技能。以下是这些学习资料可能涵盖的一些关键知识点: 1. **Java环境配置**:首先,你需要安装JDK(Java Development...

    传智播客Java SE基础毕向东老师的上课代码

    很抱歉,根据您给出的信息,标题和描述似乎与Java SE基础课程相关,但提供的压缩包子文件的文件名称列表中却包含"RealCodec.exe"、"使用说明.txt"以及"RealCodec播放器插件RealCodec播放器插件下载 V1.0_ - pc6下载...

    JAVA SE基础学习资料

    总之,Java SE基础学习涵盖了对Java API的深入理解,特别是核心类库如Lang包中的String和StringBuffer,以及基本数据类型包装类的应用。熟练掌握这些知识对于成为一名合格的Java开发者至关重要。

    JAVA SE 基础的课程

    在Java SE基础课程中,变量、数据类型和运算符是学习的重点。Java支持多种数据类型,包括基本类型(如int、float、char)和引用类型(如类、接口和数组)。了解它们的区别和用法是编写有效Java代码的基础。同时,...

    java se基础代码练习 Java学习资料

    这份"java se基础代码练习"的学习资料包含了丰富的Java SE基础知识,对于初学者或希望巩固基础的开发者来说是非常宝贵的资源。这里我们将深入探讨Java SE中的关键概念和知识点。 1. **Java语言基础**: - **语法**...

    java se 基础 基础学习

    java se 基础 基础学习

    java se基础相关练习项目代码 Java学习资料

    这份"java se基础相关练习项目代码"的学习资料包含了一系列针对Java SE基础知识的实践项目,是学习和巩固Java编程技能的理想资源。以下是对这些知识点的详细阐述: 1. **Java语言基础**:Java是一种面向对象的编程...

    回顾 Java SE 基础实现代码 Java学习资料 自学资料

    回顾 Java SE 基础,基于 jdk-1.8 实现代码。 目录 语言基础 (八大)基本类型与引用类型 类型转换 运算符 流程控制 字符串与数组 核心技术 抽象 类的高级特性 final 内部类 枚举与泛型 异常处理 集合 I/O 反射 多...

    java SE基础练习代码 Java学习资料

    这份"java SE基础练习代码"包含的Java学习资料,无疑为初学者提供了一个绝佳的实践平台,帮助他们巩固和深化对Java编程语言的理解。下面我们将深入探讨Java SE中的关键知识点,并结合练习代码进行说明。 1. **基础...

    java SE基础课程

    Java SE基础课程是针对初学者设计的一门课程,主要涵盖了Java编程语言的基础知识。这门课程将引导学生深入了解Java的核心概念,包括数据类型、控制结构、类与对象、异常处理等,同时也涉及到一些核心库的使用,如...

    Java SE 基础知识题库

    Java SE基础知识题库涵盖了许多关于Java编程的核心概念,特别是面向对象的特性,如抽象、继承、封装和多态性。以下是对这些知识点的详细解释: 1. **抽象**: 抽象是面向对象设计的基本原则之一,它帮助我们将复杂...

    公司级JAVA SE基础

    在"公司级JAVA SE基础"的学习中,以下几个关键知识点是必须掌握的: 1. **Java语法**:包括基本数据类型、变量、运算符、流程控制语句(如if、switch、for、while)、方法、类和对象等。理解面向对象编程的基本概念...

Global site tag (gtag.js) - Google Analytics