java for finding job

本文深入探讨了Java语言的关键特性,包括初始化、构造器、多态、接口与抽象类、Java虚拟机、运行机制、JRE与JDK的区别、Tomcat与Eclipse的使用、类的加载时机等核心概念,并详细解析了Java类何时被加载的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.初始化

- 基本类型自动初始化为0,类自动初始化为null。

- 编译器并不是简单的为每一个引用创建默认对象,如果想初始化这些引用,可以在下列位置

-- 1定义对象的地方,例如成员变量,private String = "hello",这是在定义时初始化

--2构造器

--3使用这些对象之前

--4使用实例初始化  

关于初始化顺序参见http://1877998.blog.51cto.com/1867998/473728,http://xjlnjut730.iteye.com/blog/407893点击打开链接

2.构造器

-构造过程是从基类往外扩散的,先访问基类构造器,在访问子类构造器。

-如果基类和子类构造器参数不同或一个有参一个无参,只需要在子类的构造器里加上父类的构造,如

class Art {
	private String s;
    Art(String s) {
	  this.s = s;
	  print("Art constructor s = "+s); }
}

class Drawing extends Art {
	private String  s2;
    Drawing(String s1, String s2) { 
	  super(s1);
	  this.s2 = s2;
	  print("Drawing constructor s2 ="+s2); }
}

class Art {
	private String s;
    Art(String s) {
	  this.s = s;
	  print("Art constructor s = "+s); }
}

class Drawing extends Art {
    Drawing() { 
	  super("something");
	  print("Drawing constructor"); }
}
3.多态

多态用到动态绑定,动态绑定过程:

public class Son extends Father
2 Father son = new Son();
3 son.method();
- 首先,编译器根据对象的声明类型和方法名,搜索相应类(Son)及其父类(Father)的“方法表”,找出所有访问属性为public的method方法。 可能存在多个方法名为

method的方法,只是参数类型或数量不同。若子类重写父类的方法,则调用子类的方法,若子类没有重写父类的方法,则用父类的方法。

- 然后,根据方法的“签名”找出完全匹配的方法。 方法的名称和参数列表称为方法的签名

-如果是private、static、final 方法或者是构造器,则编译器明确地知道要调用哪儿个方法,这种调用方式成为“静态调用”。

-调用方法。

动态绑定只针对对象的方法,对属性无效。


接口和抽象类

区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。

相似一,抽象方法和接口方法均不能有方法体,继承类对于抽象类所定义的抽象方法和接口类所定义的方法,在继承类中必须要给出相应的方法和属性实现。

区别二,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。

区别三,接口中可以有变量,但是不能为private和protected,接口中的变量,本质上都是static final的,不管加不加static修饰,在java开发中,通常把经常用的变量,定义在接口中,作为全局变量使用,一个接口可以继承另一个接口;

区别三,抽象类可以没有抽象方法;

4.为什么要使用Java虚拟机


Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代

码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。


Java运行机制


Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。

运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。

5.JRE和JDK的区别
在安装程序时,如果留意你会发现安装了 JRE、和JDK,这两个概念一定要搞清楚。
JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。是Sun的产品,包括两部分:JavaRuntimeEnvironment和JavaPlug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具——编译器、调试器和其它工具。JRE需要辅助软件——JavaPlug-in——以便在浏览器中运行applet。J2RE是Java2
 RuntimeEnvironment,即Java运行环境,有时简称JRE.如果你只需要运行Java程序或Applet,下载并安装它即可。如果你要自行开发 Java软件,请下载JDK.在JDK中附带有JRE。注意由于Microsoft对Java的支持不完全,请不要使用IE自带的虚拟机来运行 Applet,务必安装一个JRE或JDK. 
JDK 是整个Java的核心,包括了Java运行环境(Java RuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比SunJDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

6.tomcat和Eclipse

tomcat自己指定java_home而不用环境变量http://yunzhongxia.iteye.com/blog/1315716

在bin/setclasspath.bat中修改


7.java类何时被加载
1,生成该类对象的时候
public class test1 {
		static int total = 0;
		static
		{
			System.out.println("a");
		}
}
public class testStatic {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("hello");
	}

}

输出是hello。可见类test1没有被加载
public class testStatic {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("hello");
		test1 a=new test1();
	}

}
输出为
hello
 a,可见类在生成对象的时候被加载
2、访问静态成员的时候
public class testStatic {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("hello");
		System.out.println(test1.total);
	}

}

输出:
hello
a
0
3、Class.forName("test1")
public class testStatic {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("hello");
		try {
			Class.forName("com.cainan.test1");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
输出
hello
a



资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值