java入门学习笔记1

java和C++的区别

  1. java不支持指针、多继承、运算符重载、全局变量、宏定义等;
  2. java是混合性语言,先编译成java字节码,再由JVM边解释翻译边执行,不直接运行在计算机硬件上,因此移植性好;C++是编译性语言,先编译成机器码再解释成指令;
  3. java内容管理对象只再堆上分配内存,其内存释放由JVM进行垃圾自动回收。

基本概念和运算符

JDK、JRE、JVM的定义和关系?

  • JDK是核心工具包,包含JVM,核心类库,开发工具(javac,jdb那些)
  • JRE是运行环境,包含JVM,核心类库,运行工具(java)
  • JVM是虚拟机,JDK包含JRE,JRE包含JVM。

代码中0开头是八进制如017,0b开头是二进制,0x开头是十六进制。

64A,97a

&&和&的区别是前者有短路效果,即左边已经获得结果,右边将不参与。&&有假即假,||有真即真。

原码、反码和补码的关系?

  • 反码:正数不变,负数将原码符号位不变,其他位取反。

    • 目的是解决原码负数加正数的问题。
  • 补码:正数不变,负数将反码加一。

    • 目的是解决反码负数加正数后超过0时的问题。
  • 一个字节的范围是-128到127,一般计算机存储和计算都以用补码形式进行计算。

数组与方法

Arrays.sort(arr)时 arr 的数据类型可以是基本数据类型,但 Arrays.sort(arr,comparator)时必须使用引用类型(类,接口,数组存放的是对象的内存地址)。

因此对于普通int数组逆序使用sort方法时,可以先转为Integer

public static void arraysort(){
        int[] abb = new int[5];
        Scanner sc = new Scanner(System.in);
        for (int i=0;i<abb.length;i++){
            abb[i]=sc.nextInt();
        }
        //使用流把int数组转为integer数组
//        Integer[] arr = IntStream.of(abb)
//                .boxed()
//                .toArray(Integer[]::new);
        //传统遍历
        Integer []arr=new Integer[abb.length];
        for (int i=0;i<arr.length;i++){
            arr[i]= abb[i];
        }
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr,(a,b)->{return a-b;});
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr,(a,b)->{return b-a;});
        System.out.println(Arrays.toString(arr));
        Arrays.sort(arr, Collections.reverseOrder());
        System.out.println(Arrays.toString(arr));
    }

Java最基本内存分配

  • 栈:方法运行的内存。
  • 堆:new出来的。将堆内开辟的地址赋值给栈中的变量
//基本数据类型,数据值存放在自己的栈空间中。
int a=10;
int b=a;
//引用数据类型,数据值存放在堆空间中。自己栈空间存放的是地址值
int[] arr1={1,2,3};
int[] arr2=arr1;//操作同一数组

方法重载:方法名相同,参数个数、类型、顺序(前提类型不同,且不好)不同。

将数字字符转为数字

for (int i=0;i<s.length();i++){
            arr[i]=s.charAt(i)-'0';
        }
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值