New(新创建) 2. Runnable(可运行) 3. Blocked(被阻塞) 4. Waiting(等待) 5. Timed Waiting(计时等待) 6. 2. 当线程试图获取一个内部对象锁而该锁被其他线程持有则线程进入阻塞状态,当所有其他线 程释放该锁,并且线程调度器允许该线程持有它的时候,线程才变为非阻塞状态 3. 因为run方法正常退出而死亡 2. Thread.State getState() //获得指定的线程状态 void stop() //停止该线程 2.1 线程属性 线程的属性包括:线程优先级、守护线程、线程组以及处理未捕获异常的处理器 Java
数据类型 1.Java程序的基本组成 关键字:被Java语言赋予特定含义的单词,不能作标识符,如private。 标识符:由数字、字母、$和_组成的字符串,用于引用变量。且首字母不能是数字。 表达式:Java中使用的是中缀表达式。如 double a +(b-c)/2。 2.基本数据类型: 类型 占用存储空间 值域 byte 1字节 -128~127 short 2字节 -2^15~2^15-1 int 4字节 -2^31~2^31-1 long 8字节 -2^63~ b : c); 语句 1.声明语句 创建某种类型的变量并用标识符为其命名,Java是一种强类型的语言,编译器会检查类型的一致性。所以在首次使用变量时一定要声明。 ,在Java中,类似于其他语言中的函数,被称为方法。
成员变量有初始值,但局部变量未赋予初始值; 不同方法中可以有同名局部变量,同一方法中,不允许有同名局部变量; 两者重名时,局部变量优先级更高; 构造方法 使用new+构造方法,创建一个新对象; 构造方法是定义在Java - 修改属性可见性,设为private; - 创建getter/setter方法用于属性读写; - 在getter/setter方法中加入属性控制语句,对属性值的合法性进行判断; 继承 Java ,是小类型到大类型的转换,无风险; 向下类型转换(强制类型转换),是大类型到小类型,存在风险; instanceof运算符,用来解决引用对象的类型,避免类型转换的安全性问题; 包 作用: 管理Java 文件; 解决同名文件冲突; 必须放在Java源程序的第一行,包名间可以使用.号隔开; 系统中的包 java. (类) java.lang.(类) 包含Java语言基础的类; java.util.(类) 包含Java语言中各种工具类; java.io.
参考链接: 对Java中派生类方法更严格的访问 第2章 Swing的基本知识 本章介绍开发Swing小应用程序和应用程序时要用到的Swing的基本知识。 有关绘制和更新AWT组件的更多信息,请参见《Java 2 图形设计,卷Ⅰ:AWT》。 例2-4 使用GJApp类 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util 例2-9列出了图2-8所示的小应用程序的代码 例2-9 使用重量弹出式菜单 import javax.swing.*; import java.awt.*; import java.awt.event 例2-12 列出了图2-11所示的小应用程序的代码 例2-12把重量组件添加到Swing内部窗体中 import java.awt.*; import java.awt.event.*; import
可变参数,也就是说可以在参数列表中使用个数不确定的参数,最经典的例子就是Java中的main方法,参数的个数没有办法确定,此时就可以使用可变参数来处理方法中的参数。使用时可以按照数组的使用方式来用。 for(Object temp : arguments) { //业务逻辑 } ... } 2. ); System.out.println(test.sum(1, 2, 3)); } } 输出结果为:1,3,6。 参考资料: 1、Effective Java 2.0 2、http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html 3、http www.cnblogs.com/lanxuezaipiao/p/3190673.html 4、http://javarevisited.blogspot.com/2011/09/variable-argument-in-java5
JAVA 虚拟机提到过的处于方法区的永生代(Permanet Generation),它用来存储 class 类, 常量,方法描述等。 2. 2.5.JAVA 四中引用类型 2.5.1. 因此强引用是造成 Java 内存泄漏的主要原因之 一。 2.5.2. 2. 作为年老代中使用 CMS 收集器的后备垃圾收集方案。
[1240] 前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番 前序文章链接: Java 面试知识点解析(一)——基础知识篇 Java 面试知识点解析(二)——高并发编程篇 Java 面试知识点解析(三)——JVM篇 Java 面试知识点解析(四)——版本特性篇(1 ) --- 对于 Java 各个版本的特性,特别是 Java 8 的新知识点,我们都应该有所了解。 相关知识点 关于 Java 8 中新知识点,面试官会让你说说 Java 8 你了解多少,下面分享一下我收集的 Java 8 新增的知识点的内容,前排申明引用自:Java8新特性及使用 1)接口默认方法和静态方法 2.接口静态方法 Java 8 带来的另一个有趣的特性是接口可以声明(并且可以提供实现)静态方法。
2,外键引用,也就是一方引用另一方的主键,作为外键,并且对引用的外键加唯一约束。 以User和Address类为例,用户和用户的地址是一对一关系 User类 package alan.hbn.rel.o2o; import java.io.Serializable; public class = null){ address.setUser(this); } } } Address类 package alan.hbn.rel.o2o; import java.io.Serializable; public class Address implements Serializable{ private int addressId; private
继 Java基础知识的全面巩固_note1(附各种demo code) 拜读《核心技术卷》,笔记之。 5, 6, 9, 8, 4, 0] [3, 2, 5, 6, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0] [3, 2, 5] [true, true, true, true 2 6 7 8 9 关键API: ? ? 1.6 多维数组 ? ? ? ? ? ? 代码: package Test; //import java.lang.Math; import java.util.Arrays; //import java.util.Date; import java.util.Scanner *(n-k+1)/(1*2*3*...
Java数组全套深入探究——进阶知识阶段2、冒泡排序 目录 数组学习的重要意义 冒泡排序的具体排序过程 选择排序与冒泡排序对比 实现方式: 时间复杂度: 空间复杂度: 稳定性: 对比数据(以数组[64, 时间复杂度: 选择排序的时间复杂度为O(n^2),其中n是数组的大小。因为无论数组是否已经有序,都需要进行n-1轮比较和交换操作。 冒泡排序的时间复杂度也为O(n^2)。 1)/2次比较。 冒泡排序的比较次数:在最坏情况下,需要比较的次数和选择排序相同,即n*(n-1)/2次比较。但是,如果数组已经有序,则只需要进行n-1次比较。 综上所述,选择排序和冒泡排序在时间复杂度上都是O(n^2),但是在实现方式、稳定性以及具体比较和交换次数上有所不同。
2,尽量使各模块间的耦合性降低,最大限度的针对接口编程。 3,可以将共代码方在覆盖父类的方法中,最后可以用super.xxx(xxx)来调用父类的方法,使用父类的实现,并加上了自定义的功能。
J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号。 我本人在JAVA开发刚入行的时候,也是做了不少web相关的项目,之后渐渐地web使用比较少了,现在web开发的技术日新月异,不过一些基础知识还是类似,所以也把这部分内容稍作整理,以期望可以给大家一些经验 哪怕你不用Java开发,用C#、PHP或者Python,这些内容都是通用,这里主要偏重一些基础知识。 HTTP协议,HTTPS协议 我觉得做Web开发,HTTP是基础中的基础。 J2EE部分 JDBC(可以在J2SE中使用) JDBC用于java和数据库交互。 以上这些只是我自己对于企业级开发和Web开发的一些简单心得,当然,J2EE中还有更多的规范,web 开发也有更多相关的内容, 我因为也有一段时间没有专注在web相关的开发上面, 这些知识点罗列也一定有不少疏漏
本文链接:https://blog.csdn.net/Hacker_ZhiDian/article/details/103058927 前言 在前一篇文章中我们大致介绍了 C语言的一些预备知识, 对其中的某些常用知识点进行了一个概述。 这篇文章中我们来通过实践的形式来加深对之前知识点的理解。 程序的编译过程 我们在上篇文章中提到 C语言编译器将一个源程序编译成可执行程序大致需要经过预处理、编译、汇编、链接这四个过程。 即可 #include "custom2.h" int main() { int maxValue = maxx(1, 2, 3); int minValue = minn(1, 2 custom1.o: gcc -c custom1.c -o custom1.o custom2.o: gcc -c custom2.c -o custom2.o 最后我们在 make-test
什么是静态内部类 在Java中有静态代码块、静态变量、静态方法,当然也有静态类,但Java中的静态类只能是Java的内部类,也称为静态嵌套类。 class OuterClass { static class StaticInnerClass { ... } } 在介绍静态内部类之前,首先要弄清楚静态内部类与Java 2. 内部类 什么是内部类?将一个类的定义放在另一个类的内部,就是内部类。Java的内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类。 典型的情况是Effective Java 2.0中Item 2讲述的构建器模式。 2.0 2、http://www.cnblogs.com/chenssy/p/3388487.html 3、http://www.cnblogs.com/dolphin0520/p/3811445.html
: / by zero at com.exception.Demo01.main(Demo01.java:5) 2.异常体系结构 Java把异常当作对象来处理,并定义一个基类Java.lang.Throwable 作为所有异常的超类 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception Error: Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关 Java虚拟机运行错误(Virtual MachineError),当JVM不再有继续执行所需要的内存资源时,将出现OutOfMemoryError。 这些异常发生时,Java虚拟机一般会选择线路终止 还有发生在虚拟机试图执行应用时,如类定义错误(NOClassDefFoundError)、链接错误(LinkageError)。 除此之外,用户还可以自定义异常,自定义异常只需要继承Excepetion类即可 步骤: 1.创建自定义异常类 2.在方法中通过throw关键字抛出异常对象。
知识点 了解Java语言的背景和演变过程。 理解Java SE、Java EE、Java ME的区别和应用场景。 1.2 面向对象程序设计思想 核心概念 面向过程程序设计:以过程为中心,关注步骤。 知识点 区分面向过程和面向对象的程序设计方法。 理解OOP的基本原则及其在Java中的实现。 JRE(Java Runtime Environment):Java运行环境,包括JVM和类库。 环境变量配置:设置JAVA_HOME、Path等。 知识点 安装和配置JDK。 知识点 使用文本编辑器编写Java源代码。 使用javac命令编译Java程序。 使用java命令运行Java程序。 掌握正确的代码注释方法。 这些知识点不仅加深了我对Java语言的理解,也为后续更复杂面向对象特性的学习打下了坚实的基础。
Java反射笔记记录篇 必要性:学习框架源码必备的前提知识。 反射机制:将类的各个组成部分封装为其他对象,这就是反射机制。 反射的优势: 1.可以在程序运行过程中,操作这些对象。 2.可以解耦,提高程序的可扩展性。 Java代码在计算机中经历的三个阶段 (1)Source源代码阶段: .java 被编译成 .class 字节码文件。 获取Class对象的方式 获取Class对象的三种方式对应着java代码在计算机中的三个阶段 (1)【Source源代码阶段】 Class.forName("全类名"):将字节码文件加载进内存,返回Class for(Constructor constructor : constructors){ //Constructor 对象reflect包下的 import java.lang.reflect.Constructor = " + constructor2); //创建对象 Object person2 = constructor2.newInstance("乐心湖", 23,"哈哈哈"
总结 1.对象是具体的事物;类是对对象的抽象; 2.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
参考:Java核心技术 卷I 基础知识 Unicode和char类型 码点是指与一个编码表中的某个字符对应的代码值。在Unicode标准中,码点采用十六进制书写,并加上前缀U+。 Java中,char类型描述了UTF-16编码中的一个代码单元。 运算符优先级 ? ? 码点与代码单元 Java字符串由char值序列组成。 大数值 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal,这两个类可以处理包含任意长度数字序列的数值。
在Java中,int类型永远是32位 2. Java适合于网络/分布式环境 3. Java的高性能 4. Java的健壮性 5. JVM、JRE、JDK、JMM 6. Java文件夹目录 7. 小知识点 您有任何建议或意见,请您在下方回复或者私信我,感谢! ---- 1. 在Java中,int类型永远是32位 因为Java虚拟机的存在,类型的定义也是跨平台的。 这样来看,Java体系本身具有一定的“语言无关性”。 2. Java适合于网络/分布式环境 分布式的前提是网络环境,由于Java对CS模式的支持,因此对网络的支持也渗透到了方方面面。 Java的高性能 回忆一下基础知识: 1.高级语言的通用运行原理: –> 编写代码 : 编写源代码 –> 预处理 :展开头文件/宏替换/去掉注释/条件编译 –> 编译 :语法分析与处理,并生成汇编语言 Java的健壮性 1.强类型,在编译和运行时进行了大量的类型检查,防止了数据类型不匹配的发生。 2.垃圾回收机制(详见 7. 内存模型与 8. 垃圾回收) 3.异常处理机制(详见 11.