java jsonarray转list_新手如何学习Java?附Java常见知识点与学习心得

知识点总结

关于变量、方法、类这些基本概念就不总结了。

常用数据类型

基本数据类型一般就是数值、字符串、布尔

  • 数值——int、double、long……
  • 字符串——String
  • 布尔——boolean

然后就是一些容器,数组、集合……

  • 数组——Arrays
  • 集合——List、ArrayList
  • ……

而在这些基础上,还有一些根据这些加以扩展的类型,常见的就是时间类、操作类、计算类……

  • 时间——LocalDate、LocalDateTime……
  • 操作——DateFormat(格式化操作)……
  • 计算——Duration(计算)……
  • ……

数据类型的一些操作

字符串String

(下面的例子里,str、str1、str2是String的对象)

  • 求长度——str.length()
  • 取字符——str.charAt(index)【index代表字符在字符串中的下标,从0开始】
  • 去空格——str.trim()【①只会去除开头和结尾两边的空格 ②不会改变str的值,而是返回一个新的值】
  • 查子串——str.indexOf(str1, index)【从str下标为index(默认值为0)开始查找str1在str中出现时的第一个字符的下标,如果存在则返回该下标,否则返回-1】
  • 截子串——str.substring(index1, index2)、str.substring(index1)
  • 判开头——str.startsWith(str1)
  • 判结尾——str.endsWith(str1)
  • 判相等——str.equals(str1)【注意不要用==判断】
  • 替换——str.replaceAll(str1, str2)【将str中所有的str1替换为str2】
  • 分隔——str.split(str1)【将str1作为分隔符把str分隔成若干个字符串然后生成一个String[](字符串数组),其中"."、"|"、"*"要用"."、"|"、"*"进行转义】
  • 全部大小写——str.toUpperCase()、str.toLowerCase()【不会改变str的值】
  • 字符串转数字——Integer.parseInt(str)
  • 数字转字符串——①str+数字 ②String.valueOf(数字)

集合的操作

(下面的例子里list、list1是集合对象,item可以作为集合list的元素、arr是数组、str是字符串)

  • 增——list.add(item)
  • 删——list.remove(index)【index为下标,从0开始】
  • 改——list.set(index, item)【index为下标,从0开始】
  • 查——list.get(index)【index为下标,从0开始】
  • 合并——list.addAll(list1)
  • 截子列表——list.subList(begin, end)【begin/end分别为开始/结束的下标,从0开始,不会改变原来列表的值】
  • 排序——Collection.sort(list, new Comparator<???>(){具体比较方法自己定义})【会改变list的值】
  • 数组转集合——Arrays.asList(arr)
  • 集合转数组——list.toArray(arr)
  • 集合转字符串——String.join(str, list)【str是分隔每个元素的分隔符】

还有很多数据类型的基本操作,这里就不整理了。

其实在时间高度充裕的情况下,都整理一遍还是蛮好的,加深自己印象,也方便自己查找;但是如果时间不多,那就得学会如何去找自己想要的操作方法。【建议看看心得体会里面如何通过搜索引擎解决问题】

其实类似的像是上面两种数据类型的操作,在很多语言中都有体现。(比如List就是作为一个容器类,容器类基本都有很多相似之处,比如增删改查等等)

一个已经熟悉另外一门语言的人,基本都会知道一些数据类型会有哪些操作,在学一门新的语言的时候,一般会知道有这些操作,但是不知道怎么使用。

这个时候也就考验我们利用搜索引擎的能力了。

心得体会

我是在学校里学过一年C++的人,所以现在学Java还算是蛮轻松的,毕竟不同语言还是有许多相似之处的。

我认为学习一门新的语言,需要掌握以下能力

多思考、多动手/提问、多总结

有时候,我们确实需要多思考、多探索,才能对我们所学习的东西有一个更加深入的理解。

前天我在做类和对象设计的时候,突然想到一个问题。

一个类A里有个List<int>的属性list,我对A的一个对象a通过get把他get出来的同时add(1),那么a的属性list会是原来的值,还是加上1后的值呢?

为此,我们需要自己写一份代码来测试

package com.youkeda.test;

import java.util.ArrayList;
import java.util.List;

public class Test {

    private List<Integer> list;

    public List<Integer> getList() { return list; }
    public void setList(List<Integer> list) { this.list = list; }

    public static void main(String[] args) {
        List<Integer> test = new ArrayList<>();
        test.add(1);
        test.add(2);

        Test t = new Test();
        t.setList(test);

        System.out.println("添加前:");
        System.out.println(t.getList());

        t.getList().add(3);
        System.out.println("添加后:");
        System.out.println(t.getList());
    }
} 

我们运行一下,就可以知道我们想要的答案了——答案是get出来的集合同时add会改变对象的属性值。

问题虽然解决了,但是我们仍然可以再深入思考一步——为什么会是这样?

仔细地思考一下,问问老师,就会知道,上述代码中,List对象test就是一个引用,get里return了test,就是返回引用。

我们就可以总结出——类中get返回集合List<???>属性的时候,返回的不是List对象的拷贝,而是List对象的引用。

会搜索

在学编程的时候,我们一定会遇到很多问题。

如果全部都去问问老师,那显然自己会很不好意思、老师会很累。

所以还要学会如何到网上搜到能真正帮助到自己的内容。

比如你想要知道Java的List的增删改查操作要如何实现,可以去搜索“Java List增删改查”,得到以下结果

53bbb3d02b3b3804deaa53e534dec846.png

到这些里面找找适合自己的博客看看。(关于适合是什么概念,还得看个人,每个人的感觉都会有所不同,多去搜搜看,下次搜的时候就会很快知道道哪些是适合自己的、哪些不适合自己,这样搜索效率就能提高了)

在我看来,会自学是学计算机的人很重要的一个能力,而会搜索也是会自学的核心了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值