精华内容
下载资源
问答
  • Java中main方法的6种声明形式

    千次阅读 2019-04-14 22:40:38
    Java中main方法的6种声明形式

    前记:今天刷牛客,遇到了这道题目,平时只见到第一种,没想到居然可以有多种形式。在此记下,谨记共勉。

    Java中main方法的6种声明形式:

    第一种,最常规形式

    public static void main(String[] args)
    

    第二种,方括号在形参后面

    public static void main(String args[])
    

    第三种,可变长参数形式,三个点前后有无空格都可以

    public static void main(String... args)
    

    第四到六种:将前三种中的 public 和 static 修饰符更换位置

    static public void main(String[] args)
    
    static public void main(String args[])
    
    static public void main(String... args)
    

    附上牛客的题目,原来第三选项选错的原因是因为返回值为int:
    牛客

    展开全文
  • java声明方法抛出的异常

    千次阅读 2017-07-04 22:34:35
    java声明方法抛出的异常 TestExceptions.java import java.io.*; //异常 public class TestExceptions { public static void main(String[] args) { } void f() {//throws FileNotFoundException...

    java声明方法抛出的异常

    TestExceptions.java

    import java.io.*;
    
    //异常
    public class TestExceptions {
    	public static void main(String[] args) {
    		
    	}
    	
    	void f() {//throws FileNotFoundException , IOException 
    		FileInputStream in = new FileInputStream("myfile.txt");
    		int b;
    		b = in.read();
    		while (b != -1) {
    			System.out.print((char) b);
    			b = in.read();
    		}
    	}
    }

     抛出异常

    F:\java>javac TestExceptions.java
    TestExceptions.java:10: 错误: 未报告的异常错误FileNotFoundException; 必须对其进行捕获或声明以便抛出
                    FileInputStream in = new FileInputStream("myfile.txt");
                                         ^
    TestExceptions.java:12: 错误: 未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出
                    b = in.read();
                               ^
    TestExceptions.java:15: 错误: 未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出
                            b = in.read();
                                       ^
    3 个错误
    
    F:\java>

     

    给方法抛出异常

    import java.io.*;
    
    //异常
    public class TestExceptions {
    	public static void main(String[] args) {
    		
    	}
    	
    	//throwsthrows FileNotFoundException , IOException
    	void f() throws FileNotFoundException , IOException {
    		FileInputStream in = new FileInputStream("myfile.txt");
    		int b;
    		b = in.read();
    		while (b != -1) {
    			System.out.print((char) b);
    			b = in.read();
    		}
    	}
    }

     编译没有报异常

    F:\java>javac TestExceptions.java
    
    F:\java>

     

    import java.io.*;
    
    //异常
    public class TestExceptions {
    	public static void main(String[] args) {
    		
    	}
    	
    	//throwsthrows FileNotFoundException , IOException
    	void f() throws FileNotFoundException , IOException {
    		FileInputStream in = new FileInputStream("myfile.txt");
    		int b;
    		b = in.read();
    		while (b != -1) {
    			System.out.print((char) b);
    			b = in.read();
    		}
    	}
    	//throws IOException
    	void f2() throws IOException {
    		
                    //捕捉f()方法中可能出现的异常
    		try {
    			f();
    		} catch (FileNotFoundException e) {
    			System.out.println(e.getMessage());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    }
    import java.io.*;
    
    //异常
    public class TestExceptions {
    	public static void main(String[] args) /*throws Exception*/ {
    		try {
    			TestExceptions te = new TestExceptions();
    			te.f2();
    		} catch(IOException e) {
    			e.printStackTrace();
    			
    		}
    		
    	}
    	
    	//throwsthrows FileNotFoundException , IOException
    	void f() throws FileNotFoundException , IOException {
    		FileInputStream in = new FileInputStream("myfile.txt");
    		int b;
    		b = in.read();
    		while (b != -1) {
    			System.out.print((char) b);
    			b = in.read();
    		}
    	}
    	
    	void f2() throws IOException {
    		/*
    		方法一:
    		//捕捉f()方法中可能出现的异常
    		try {
    			f();
    		} catch (FileNotFoundException e) {
    			System.out.println(e.getMessage());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		*/
    		
    		/*
    			方法二:
    			在f2() 方法后抛出异常f2() throws IOException
    		*/
    		f();
    		
    	}
    }

      

     

    展开全文
  • 【Java】Java方法详解篇

    万次阅读 2020-06-11 16:24:18
    【Java】java方法详解篇 文章目录【Java】java方法详解篇方法void修饰的方法的调用方法的重载方法的形参是基本数据类型方法的形参是引用类型递归结构 方法 方法:完成特定功能的饿代码块 作用: 提高代码复用性...

    【Java】java方法详解篇



    方法

    方法:完成特定功能的饿代码块
    作用:

    • 提高代码复用性和可维护性
    • 但是并不能提高程序的运行效率

    定义格式:

    • 修饰符
    • 返回值类型:用于限定返回值的数据类型
    • 方法名:方法的名字,便于我们调用
    • 参数类型:用于限定调用方法时传入数据的类型
    • 参数名:用于接收调用方法时传入数据的变量(用于告诉方法的使用者,调用该方法时的需要)
    • 方法体:完成我们需要的功能的代码
    • return语句:结束方法,并把返回值传递给调用者
    修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2……){
    		方法体;
    		return 返回值;
    }
    

    注意事项

    • 实参的数目,数据类型和顺序需和所调用的方法声明的形式参数列表匹配
    • return终止方法的运行并指定返回数据
    • java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是数据的副本)
    • 基本数据类型传递的时该数据的copy值
    • 引用数据类型传递的是该对象引用的copy值,但指向的是同一个对象

    void修饰的方法的调用

    void:

    • 当没有方法返回值时,返回值类型写void

    注意:

    • 返回值类型为void的方法只能单独调用
    • void作为返回值类型的方法,可以不写return语句,或使用ruturn;结束方法,
    public static void testOne(){
    	System.out.println("HelloWorld");
    	//可以不写return,方法中的代码执行完毕后,方法会自动结束
    }
    
    public static void testTwo(){
    	System.out.println("HelloWorld");
    	rerurn;
    	System.out.println("这句话不会执行,因为上面结束了方法");
    }
    
    public static void testThree(){
    	System.out.println("HelloWorld");
    	return 0;
    	//void方法不能return值,因为返回值的话必须要有返回值类型
    }
    

    方法的重载

    方法的重载

    • 英文Overload

    • 概念:在同一个类中,有多个方法名相同,参数列表不同的方法

    • 方法重载的特点

      • 参数个数不同
      • 参数的数据类型不同(包括数据类型相同,但数据顺序不同,例如:int a,double b 和 double b,int a也是不一样的)
    • 方法重载和什么无关

      • 和返回值类型无关
      • 和参数变量名无关
      • 和方法体无关

    方法的形参是基本数据类型

    • 方法的形参是基本数据类型,形参的值改变不会影响实际参数
      • 原因:因为形参是在方法内部定义的一个新的局部变量,与方法外的实际参数变量是2个不同的变量,所以互不影响

    方法的形参是引用类型

    注意

    • 方法的形参是引用数据类型:形参的值改变是否影响实际参数要看引用关系
      • 如果形参是修改自身保存的引用,不会影响实际参数
        • 原因:因为形参是调用方法中的一个单独变量,实际参数是定义在main方法中的另一个单独变量,形参改变其保存的引用指向,并不影响实际参数的引用指向
      • 如果形参是通过引用修改堆内存中保存的数据,会影响实际参数获取的值
        • 原因:因为形参是调用方法中的一个单独变量,实际参数是定义在main方法中的另一个单独变量,形参通过引用修改的是堆内存中的数据,而实际参数也是指向该堆内存中的数据,所以形参修改后,实际参数获取的值也会改变
    // 形参是引用数据类型,是否影响实际参数
    public class demo{
    	public static void main(String[] args) {
    		// 数组
    		System.out.println("------------修改数组的引用指向------------");
    		int[] arr = {1, 2, 3};
    		System.out.println("原始值: arr=" + Arrays.toString(arr));
    		changeArr(arr);
    		System.out.println("修改后: arr=" + Arrays.toString(arr));
    		
    		
    		System.out.println("------------通过数组引用修改堆内存中数组的元素值------------");
    		System.out.println("原始值: arr=" + Arrays.toString(arr));
    		changeArrElement(arr);
    		System.out.println("修改后: arr=" + Arrays.toString(arr));
    	}
    	
    	// 修改数组的引用: 不会影响实际参数
    	private static void changeArr(int[] arr) {
    		arr = new int[]{999, 999};
    	}
    	
    	// 通过数组变量的引用修改堆内存中数组的元素: 会影响实际参数
    	private static void changeArrElement(int[] arr) {
    		arr[0] = -1;
    		arr[1] = -1;
    		arr[2] = -1;
    	}
    }
    

    结果:
    在这里插入图片描述


    递归结构

    递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。

    利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。

    例如

    void aa(int a) {
    		
    		if (a<10) {
    			a++;
    			aa(a);
    		}
    		
    	}
    

    递归结构包括两个部分:

    1. 定义递归头。解答:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。
    2. 递归体。解答:什么时候需要调用自身方法。

    递归的缺陷
    简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。

    展开全文
  • java 异常处理之声明抛出异常

    千次阅读 2018-11-01 00:44:38
    java 异常处理声明抛出异常2.声明抛出异常是Java中处理异常的第二种方式 2.声明抛出异常是Java中处理异常的第二种方式 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此...

    2.声明抛出异常是Java中处理异常的第二种方式

    1. 如果一个方法(中的语句执行时)可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示地声明抛出异常,表明该方法将不对这些异常进行处理,而由该方法的调用者负责处理。
    2. 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常类型可以是方法中产生的异常类型,也可以是它的父类。
      声明抛出异常举例:
    public class TestException2 {
    	//常规处理方式
    	public static void main(String[] args) {
    		TestException2 t = new TestException2();
    		try {
    			t.method2();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	//抛,常规不使用该方式处理异常
    	public static void main(String[] args) throws IOException{//main方法在往上就是JVM了
    		TestException2 t = new TestException2();
    		t.method2();
    	}
    	public void method2() throws IOException{//往上抛,抛给他的调用者
    		method1();
    	}
    	public void method1() throws FileNotFoundException,IOException{//往上抛,抛给他的调用者
    		FileImageInputStream fis = new FileImageInputStream(new File("testEception.txt"));
    		int b;
    		while((b = fis.read()) != -1) {
    			System.out.println((char)b);
    		}
    		fis.close();
    	}
    }
    
    

    总结:

    • 格式,如:public void method1() throws FileNotFoundException,IOException{}
    • 当此方法在内部出现异常的时候,会抛出一个异常类对象,抛给方法的调用者。
    • 异常的对象可以逐层向上抛,直至main中,在向上抛的过程中,可以通过try-catch-finally捕获处理。
    • 使用的时候一般不会这个逐层往上抛,一般会在某个特定地方进行处理(try-catch),因为如果谁都不处理这个问题的话,程序就停止运行了。
    • 核心思想:(try-catch)在项目中使用最多,其在出现异常的时候,就是告诉程序怎么处理,如果一直抛出,那最后要处理的人,很可能就是不知道,当初出现问题是什么?
    • 项目中,一般不是编译不过的,不会用异常处理,具体是原因,可以思考一下,回复哩。。
    展开全文
  • java基础】——java中父类声明子类实例化

    万次阅读 多人点赞 2018-11-27 00:07:14
    问题: 1、比如两个类父类:Person 子类 Student extends Person在使用时候,这样写:Person person=null; //声明对象person=new Student();...Java的多态性 面向对象编程有三个特征,即封装、继承和多态。封装隐...
  • 狂神说java学习笔记---Java方法详解

    千次阅读 2020-07-26 17:19:56
    Java方法详解 何谓方法 方法的定义及调用 方法的重载 命令行传参 可变参数 递归 何谓方法? System.out.println(),那么它是什么呢? //System"类".out“输出对象”.println()“方法” Java方法是语句的集合...
  • xslt调用java方法

    千次阅读 2010-04-19 12:44:00
    在stylesheet标签里声明命名空间和调用方法: ...... ${path}随便怎样写都可以,即使是个不存在的path也可以,但必须保证最后一个packageName是java的classpath中的第一个包,例如包名为:process,类名为:...
  • java为什么有些异常throw出去需要在函数用throws声明,一些就不用。 Excepiton分两类:checked exception、runtime exception;直接继承自Exception就是checked exception,继承自RuntimeException就是runtime的...
  • JAVA基础——接口(全网最详细教程)

    万次阅读 多人点赞 2018-05-10 09:46:42
    官方解释:Java接口是一系列方法声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 我的解释:接口...
  • 这几天帮朋友弄一个dotnet 的webservice调用java webservice程序,java这方为服务器端,提供服务,使用XFire写的,客户端用的是dotnet,我们都知道,webservice是用soap协议传输的,不同语言都支持这个协议dotnet更...
  • Java大佬在地表最强Java企业(阿里)面试总结

    万次阅读 多人点赞 2020-08-23 19:48:06
    面试题真的是博大精深,也通过这个面试题学到了很多...Hashtable 中的方法是Synchronize的,而HashMap中的方法在缺省情况下是非Synchronize的。 HashMap把Hashtable的contains方法去掉了,改成containsValue和contains.
  • 深入理解Java并发之synchronized实现原理

    万次阅读 多人点赞 2017-06-04 17:44:44
    【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) ... 出自【zejian的博客】...深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深...
  • 批量给java文件添加license声明

    千次阅读 2019-07-23 16:56:27
    批量为某个路径下的所有java文件添加license声明 license支持文本输入和文件输入两种方式 关键代码介绍 遍历文件和文件夹,找到需要处理的文件 private static void iterativeHandleFiles(File file, Str....
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • Java基础问题整理

    万次阅读 多人点赞 2020-04-07 11:44:14
    备注:针对基本问题做一些基本的总结,不是详细解答!...4.HashMap1.7与HashMap1.8的区别,从数据结构上、Hash值的计算上、链表数据的插入方法、内部Entry类的实现上分析? 5.Hash1.7是基于数组...
  • 问题描述Java中为什么静态方法不能被重写?为什么静态方法不能隐藏实例方法?诸如此类。前期准备首先理解重写的意思,重写就是子类中对父类的实例方法进行重新定义功能,且返回类型、方法名以及参数列表保持一致,且...
  • java

    千次阅读 2020-07-17 16:35:33
    jvm:jre的一部分,他是整个java实现跨平台的最核心部分,负责解释执行Java字节码文件,是运行java字节码文件的虚拟计算机,java跨平台的原因:Java源文件被虚拟机编译成字节码文件后,生成的是与平台无关的字节码,...
  • Java 中的异常处理除了包括捕获异常和处理异常之外,还包括声明异常和拋出异常,可以通过 throws 关键字在方法声明方法要拋出的异常,然后在方法内部通过 throw 拋出异常对象。本节详细介绍在 Java 中如何声明...
  • 关于Java方法参数为Void的用法

    千次阅读 2019-04-30 11:23:56
    看String源码的时候发现方法参数竟然有一个参数是Void类型的,感觉很奇怪,做了这么长时间的java还是一次发现方法参数是Void类型的,看了代码以后发现这种用法确实不错,特此记录一下 String的源码里面这个方法就...
  • https://www.cnblogs.com/paul011/p/7850552.html
  • java 队列方法详解

    千次阅读 2019-03-09 20:55:59
    一、队列支持的方法(Queue) throw exception return special value insert add 1、增加元素不能为null 2、其他异常,比如有界队列 offer ...
  • Java

    千次阅读 2020-08-01 09:56:23
    Java 1、Java 简介 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表...
  • Java中main()的声明格式

    千次阅读 2011-04-30 18:46:00
    main方法声明为静态方法(static),一般在一个类里面定义这样的main方法对该类进行一些简单的测试。main方法就这一种声明格式。  1.public 定义main方法的访问权限为公有的。  2.static 声明为静态方法,静态...
  • java队列Queue方法

    千次阅读 2017-05-28 21:49:52
    Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约。实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现。还有的适用于多线程的环境。...
  • JAVA中native方法调用

    千次阅读 2014-06-16 21:24:58
    java中native是关键字。它一般在本地声明,异地用C和C++来实现。它的声明有几点要注意:1)native与访问控制符前后的关系不受限制。2)必须在返回类型之前。3)它一般为非抽象类方法。4)native方法在异地实现,象...
  • 521反爬虫解决方法java

    万次阅读 热门讨论 2017-06-20 23:16:32
    java 爬虫 521 解决方法
  • Java中的关键字有哪些?Java的关键字(keyword)有多少个?Java的保留字(reserveword)有多少个?分别是什么?Java的关键字分别是什么,作用是什么?
  • java中的方法究竟是什么???

    千次阅读 2018-05-20 10:05:35
    方法头{具体的内容}方法头可以由方法的类型,名称和名称之后的括号以及有参数的列表组成。如有参数的方法头:int but(int a,int b){return a*b;}无参数的方法头:int but(){return 0;}方法体由一对括号和括号之间的...
  • java子类继承父类、方法的重写(覆盖)   在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。 格式: class 子类 extends 父类 {} public class Text { public static void main (String[]...
  • JAVA语言创建链表的方法

    千次阅读 2018-03-28 11:08:54
    链表刚学习时是用c来学习...这里,我学习下用java来使用链表的方法: 首先,定义节点类 //链表节点 class Node{ protected Node next; protected int data; public Node(int data) { //构造器来赋值 // TODO Aut...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 119,317
精华内容 47,726
关键字:

java方法头声明

java 订阅