Java学习---方法

方法

1.方法定义

方法是用来实现类是行为,相当于数学中的函数

定义:

返回值类型 方法名 (参数){

   方法主体

publicclass hasStaticMethod {

    //定义一个静态方法

    publicstaticvoid callMe() {

       System.out.println("This is a static method");

    }

    //定义一个静态变量

    privatestaticintsa;

    private              intia;

    staticvoid statMethod(){

       int i =0;

       sa=10;

       otherstat();

       //ia=20;错误

       //insMethod();错误

    }

    staticvoid otherstat(){

      

    }

    void insMethod(){

       int i =0;

       sa =15;

       ia=30;

       statMethod();

    }

    publicstaticvoid main(String[] args){

       hasStaticMethod.callMe();

       hasStaticMethodhs= new hasStaticMethod();

       hs.callMe();

    }

 

}

2.方法的使用

 方法名 xxx = new 方法名();

 /**

 *账户类

 *@author Administrator

 *

 */

publicclass Account {

    longid;//帐号

    Stringpassword;//密码

    Stringname;//姓名

    StringpersonId;//身份证

    Stringemail;//邮箱

    doublebalance;//余额

    public Account(double b){

       balance=b;

    }

    //存款方法

    publicdouble deposit(double m) {

       returnbalance = balance+m;

    }

    //取款方法

    publicdouble withdraw(double s) {

       returnbalance = balance-s;

    }

    publicstaticvoid main(String[] args){

       Account account=new Account(10000);

       double s=account.deposit(6000);

       System.out.println("存款后的金额是:"+s);

       double e = account.withdraw(5000);

       System.out.println("取款后的金额是:"+e);

    }

 

}

3.简单的计算器类

 publicclass Calc {

    floatnum1, num2;

    //无参数的构造函数 调用了带参数的构造函数

    public Calc(){

       this(1, 2);//写在第一句

       System.out.println("3.无参数的构造函数!");

    }

 //带参数的构造函数

    public Calc(float n1, float n2) {

       System.out.println("1.带参数的构造函数!");

       num1 = n1;

       num2 = n2;

       System.out.println("2.给类的两个成员变量赋值");

    }

 

    publicfloat Add() {

       returnnum1 + num2;

    }

 

    publicfloat Cut() {

       returnnum1 - num2;

    }

 

    publicfloat Ride() {

       if (num2 != 0)

           returnnum1 * num2;

       else

           return 0;

    }

 

    publicfloat Divide() {

       returnnum1 / num2;

    }

 

    publicstaticvoid main(String[] args){

       Calccalc = new Calc();

       float add = calc.Add();

       float cut = calc.Cut();

       float ride = calc.Ride();

       float divde =calc.Divide();

       System.out.println("加法:" + add);

       System.out.println("减法:" + cut);

       System.out.println("乘法:" + ride);

       System.out.println("除法:" + divde);

    }

}

 

4.计算器类的调用

 /**

 *计算器管理类 用来管理计算器对象

 *@author Administrator

 *

 */

publicclass CalcManger {

   

    static Calc calc;//自定义类的变量声明

    public  CalcManger(){

       System.out.println("在计算器管理类中初始化计算器类");

       calc = new Calc();

    }

   

    publicstaticvoid show(){

       float s = calc.Add();//调用加法函数

       System.out.println("计算器加的结果是:"+s);

       float d = calc.Cut();//调用减法函数

       System.out.println("计算器减的结果是:"+d);

       float fs = calc.Ride();//调用乘法函数

       System.out.println("计算器乘的结果是:"+fs);

       float f = calc.Divide();//调用除法函数

       System.out.println("计算器除的结果是:"+f);

    }

   

    publicstaticvoid main(String[] args){

       CalcMangercManger=new CalcManger();

       CalcManger.show();

       cManger.toString();

    }

}

5.变量的定义

 publicstaticvoid checkInt1(int i) {

       i=200;//这样是可以的 不会编译出错

       //do something

    }

    /*

    publicstatic void checkInt2(final int i) {

       i=200;//这样是不可以的 会编译出错

       //dosomething

}*/

6.构造函数

publicclass Mytime {

    //定义成员变量

    inthour,minute,second;

    //构造函数

    public Mytime(int n1,int n2, int n3){

       hour=n1;

       minute=n2;

       second=n3;

    }

//有构造函数的类的实例化

Mytime mytime = new Mytime(6, 25, 40);

6.有参数的构造函数和无参数的构造函数

 publicclass Rectangle {

    //类的无参数的构造函数

    public Rectangle(){

       System.out.println("这是矩形类的无参数构造函数!");

    }

    public Rectangle(float len,float w){

       this.len =len;

       this.width=w;

       System.out.println("这是矩形类的带参数构造函数!");

}

 

<think>好的,用户需要2024年版的Java面试资料或宝典。首先,我得确认目前最新的资源是什么。虽然2024年的可能还没完全出来,但可以推荐最近更新的或者经典持续更新的资料。 用户提到的引用里有数据结构和算法的书籍,比如《Data Structures and Algorithms: Deep Dive Using Java》,这可能是一个好的起点。另外,引用中的网站链接可能有最新的资源,比如GitHub上的中文版最佳网站列表,里面可能有程序员分享的最新面试资料。 接下来,我需要考虑用户可能需要的具体内容。Java面试通常包括核心Java、多线程、集合框架、JVM、设计模式、Spring框架等。此外,算法和数据结构也是重点,比如快速排序、哈希表等。因此,推荐的资料应该涵盖这些方面。 还要注意书籍的版本,是否有2023或2024年的更新版。例如,《Effective Java》第三版虽然发布于2018年,但仍是经典,可能还在推荐列表中。另外,一些在线平台如LeetCode、牛客网会有最新的面试题库,这些也是重要的资源。 用户可能还希望有实战项目或系统设计的内容,所以像《Cracking the Coding Interview》这样的书虽然主要针对算法,但也是必备的。此外,GitHub上的开源项目或指南,如“Java设计模式精讲”可能帮助用户深入理解。 需要检查引用中的资料是否有最新版,或者是否有替代的新资源。例如,引用1提到的书籍是否有2024版,或者是否有类似的更新指南。如果没有,可能需要推荐常青资源,并建议用户关注某些网站或社区获取最新信息。 最后,整理这些资源,分门别类,确保结构清晰,让用户能一步步找到所需资料。同时,提醒用户结合实践和理论,参与刷题和模拟面试,这样准备更充分。</think>### 2024年Java面试资料与宝典推荐 #### 一、经典书籍(持续更新版本) 1. **《Effective Java》第三版** 涵盖Java 8/9/10特性,深入讲解编码规范与设计模式,是面试核心考点[^1]。 2. **《Java编程思想》(Thinking in Java)** 系统讲解Java语法与面向对象思想,适合夯实基础。 3. **《深入理解Java虚拟机》第三版** 详解JVM内存模型、垃圾回收机制,高频面试章节如类加载、性能调优。 #### 二、算法与数据结构专项 1. **《Cracking the Coding Interview》第六版** 包含189道编程题及解法,覆盖快速排序、动态规划等高频考点[^1]。 ```java // 示例:快速排序实现 public void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } ``` 2. **LeetCode与牛客网题库** 2024年新增题型聚焦并发编程(如CompletableFuture)和Java 17特性(如模式匹配)[^2]。 #### 三、系统设计与架构 1. **《Head First设计模式》第二版** 结合Spring框架解读单例、工厂等模式,含实际项目案例分析。 2. **《微服务架构设计模式》** 针对分布式系统面试题,如CAP定理、服务熔断等[^1]。 #### 四、最新实战资源 1. **GitHub开源项目** - **「Java面试指南」仓库**:含2024年大厂真题解析(如Redis缓存穿透解决方案)[^3]。 - **「Spring Boot实战项目集」**:整合Spring Cloud Alibaba与Kubernetes部署方案。 2. **在线课程平台** - **极客时间《Java核心技术面试精讲》**:2024年新增Java 21虚拟线程(Virtual Threads)详解。 #### 五、备考策略 1. **分阶段学习计划** - 第一阶段:2周通读《Effective Java》核心章节(如泛型、Lambda) - 第二阶段:3周刷LeetCode Hot 100 + 牛客网Java专项 - 第三阶段:1周模拟面试(使用Pramp或AlgoExpert平台) 2. **避坑指南** - 避免过度关注冷门语法(如Java Flight Recorder),优先掌握高频考点(如HashMap扩容机制) - 警惕过时资料中已被废弃的技术(如Java EE中的Corba)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值