JavaSE基础阶段测试+平时测验

目录

编程题


  • 第一个知识点是明确==比较对象的时候,比较的是两个对象的地址
  • String方法返回的对象是new String()方式返回的
  • 第三个就是字面字符串和语法糖方式的对象会存放在常量池

  •  JAVA方法有传值操作和传址操作,传值操作会不会改变原来数据的
  • 传址操作分为两种,一种是改变对象的引用地址。一种是改变对象的内存内容
  • 改变对象的地址并不会改变对象的内容,比如String类型,是不可变的,所以str=test ok,只是将str的引用指向了test ok 常量池中的地址,其传入的对象的值并不会改变

  • 首先我们最大b=表达式?a?b,如果表达式为true,则b=a,反之b=b
  • 其次==的优先级大于? 则表达式变为b=true?false:(true==true)?false:true
  • b=true?false:true?false:true->b=true?false:fa 

  •  因为在对象创建的时候,利用了匿名内部类重写了equals,其按照最近原则,会优先调用其覆写的方法

JDK和JRE和JVM

 

  •  正常的有int/char/String/enum
  • 但是小于4个字节的基本数据在内存中按4个字节存储 所以short byte也是

  • 编译失败,因为方法内不能定义静态变量 

 

编程题

import java.lang.*;
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String str = sc.nextLine();
            char[] arr = str.toCharArray();
            String str1 = "";
            for (int i = 0; i < arr.length; i++) {

                if (!str1.contains("" + arr[i])) {
                    str1 += arr[i];
                }
            }
            System.out.println(str1);
        }
    }

}
  • 首先知道怎么将字符串转换为字符数组
  • 知道字符串的contains所运用的数据必须是字符串类型

import java.util.*;
public class Solution {
    public void merge(int A[], int m, int B[], int n) {
          //用双指针,如果后台没有把nums1数组扩容怎么办呢
        //nums1= Arrays.copyOf(nums1,m+n);
        int i,j;
        int k=0;
        int []arr=new int[m+n];
        for (i=0,j=0;i<m&&j<n;){
            if (A[i]<B[j]){
                arr[k]=A[i];
                i++;
            }else {
                arr[k]=B[j];
                j++;
            }
            k++;
        }
        while (i<m){
            arr[k]=A[i];
            k++;
            i++;
        }
        while (j<n){
            arr[k]=B[j];
            k++;
            j++;
        }
        for (int l = 0; l < m+n; l++) {
            A[l]=arr[l];
        }
    }
 }
  • 双指针思想,一个指针在A,一个指针在B,每次将两个指针中较小的值写入,然后指针后移,直到其中一个指针到达数组的尾部 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库里不会投三分

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值