1、方法签名

  指的是方法名和参数类型

2、java类初始化数据的方法

  • 构造函数
  • 声明变量时赋值
  • 静态块

3、List转数组

  List<String> list = new ArrayList<>();

  list.add("aa");

  list.add("bb");

  String[] array = new String[list.size()];

  array = list.toArray(array);

4、数组转List

  • ArrayList<Element> arrayList = new ArrayList<Element>(Arrays.asList(array));
  • List<Element> list = Arrays.asList(array);

   这不是最好的,因为asList()返回的列表的大小是固定的。事实上,返回的列表不是 java.util.ArrayList,而是定义在java.util.Arrays中一个私有静态类。我们知道ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。

  • Element[] array = {new Element(1), new Element(2)};

   List<element> list = new ArrayList<element>(array.length);

   Collections.addAll(list, array);

5、java安全删除list中的元素 

for (Iterator<AccountParam> iterator = accountParams.iterator(); iterator.hasNext();)
{
boolean validateResult = this.beforInsertRecordValidate(iterator.next()); if (!validateResult)
{
iterator.remove();
}
} Iterator iterator = accountParams.iterator();
while (iterator.hasNext())
{
boolean validateResult = this.beforInsertRecordValidate(iterator.next());
}

6、在静态方法中new 一个内部类对象和new 一个外部类对象的区别

  • 内部类从属于一个对象,外部类是个独立的类。
  • main 是一个静态方法,不是类的成员
  • 只能在类对象之中,调用内部类

因此,只能在类的成员方法中定义内部类(常用),或者用:{类的对象}.new {内部类}(),来定义内部内。

7、关于static{}

  在程序的一次执行过程中,static{}语句块中的内容只被执行一次,因为在虚拟机的生命周期中一个类只被加载一次;又因为static{}是伴随类加载执行的,所以,不管你new多少次对象实           例,static{}都只执行一次。

  static{}语句块的执行次序
  • 当一个类中有多个static{}的时候,按照static{}的定义顺序,从前往后执行;
  • 先执行完static{}语句块的内容,才会执行调用语句;
  • 如果静态变量在定义的时候就赋给了初值(如 static int X=100),那么赋值操作也是在类加载的时候完成的,并且当一个类中既有static{}又有static变量的时候,同样遵循“先定义先执行”的原则;

8、类加载的含义

  • 在虚拟机的生命周期中一个类只被加载一次。
  • 类加载的原则:延迟加载,能少加载就少加载,因为虚拟机的空间是有限的。
  • 类加载的时机:

    第一次创建对象要加载类.

    调用静态方法时要加载类,访问静态属性时会加载类。
    加载子类时必定会先加载父类。
    创建对象引用不加载类.
    子类调用父类的静态方法时
      当子类没有覆盖父类的静态方法时,只加载父类,不加载子类
      当子类有覆盖父类的静态方法时,既加载父类,又加载子类
    访问静态常量,如果编译器可以计算出常量的值,则不会加载类,例如:public static final int a =123;否则会加载类,例如:public static final int a = math.PI。
9、java list对象排序
  • 对象实现Comparable<>接口
1 @Override
2 public int compareTo(User o) {
3   int i = this.getAge() - o.getAge();//先按照年龄排序
4   if(i == 0){
5     return this.score - o.getScore();//如果年龄相等了再用分数进行排序
6   }
7   return i;
}
  • 对象不实现Comparable接口
 Collections.sort(students, new Comparator<Students>() {
  @Override
  public int compare(Students o1, Students o2) {
    int i = o1.getScore() - o2.getScore();
    if(i == 0){
      return o1.getAge() - o2.getAge();
    }
    return i;
  }
}

java的一些最最最最基本的东西,纯粹是为了保存的更多相关文章

  1. php爬虫最最最最简单教程

    php爬虫最最最最简单教程 一.总结 一句话总结:用的爬虫框架,却是用的自己的例子(因为网站结构的变化,作者的例子不一定好用) 爬虫框架 自己例子 1.发现自己的运行效果和作者的不一样怎么办? 耐下性 ...

  2. vue.js最最最最简单实例

    vue.js最最最最简单实例 一.总结 一句话总结: 1.vue.js实现实现数据的双向绑定用的是什么标记? 双大括号:比如{{message}} 2.vue数据循环输出的标记是什么? 用的是标签的v ...

  3. vue双向数据绑定最最最最最简单直观的例子

    vue双向数据绑定最最最最最简单直观的例子 一.总结 一句话总结:双向绑定既不仅model可以影响view的数据,view也可以影响model的数据 view model 数据 1.vue双向数据绑定 ...

  4. ThinkPHP5.0最最最最最简单实例

    ThinkPHP5.0最最最最最简单实例 一.效果图 二.操作步骤 1.用mysql数据库建立数据库 2.按照ThinkPHP官网的指示装好ThinkPHP5.0 tp5里面的目录结构如下: 3.配置 ...

  5. thinkphp5最最最最简单的ajax实例

    thinkphp5最最最最简单的ajax实例 一.总结 一句话总结:页面端使用$.get()方法传递ajax请求,服务器端判断是不是ajax请求,是的话接受参数,进行逻辑处理之后向客户端返回值. 1. ...

  6. echarts怎么使用(最最最最简单版)(本质canvas)

    echarts怎么使用(最最最最简单版)(本质canvas) 一.总结 一句话总结:外部扩展插件肯定要写js啊,不然数据怎么进去,不然宽高怎么设置.本质都是canvas嵌套在页面上,比如div中. 1 ...

  7. 其它课程中的python---4、Matplotlib最最最最简单使用

    其它课程中的python---4.Matplotlib最最最最简单使用 一.总结 一句话总结: 慢慢来吧,不着急,心态平和和沉稳:每次和世界交互,你就能感受到无比的自信 1.如何区别python2和p ...

  8. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  9. java压缩 GZIP进行简单压缩,ZIP进行多文件保存

    java压缩  GZIP进行简单压缩,ZIP进行多文件保存 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6 ...

随机推荐

  1. bzoj 4403 序列统计——转化成组合数的思路

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4403 先说说自己的想法吧. 设f[ i ][ j ]表示当前在倒数第 i 个位置,当前和后面 ...

  2. 第一章计算机网络和因特网-day02

    1.互联网中的时延:处理时延.排队时延.传输时延.传播时延. 处理时延:检查分组首部和决定该分组导向何处的时间. 排队时延:分组在链路上等待传输的时延. 传输时延:分组经过路由器与交换机的过程的时延. ...

  3. CSS动画复习

    一.css动画相关的几个属性 属性 含义 理解 transform 一种CSS属性.用于修改CSS视觉格式模型的坐标空间.使用它,元素可以被移动(translate).旋转(rotate).缩放(sc ...

  4. java中try{}catch{}和finally{}的执行顺序问题

     今天我给大家讲解一下java的的错误和异常处理机制以及相关异常的执行顺序问题.如有不足的地方,欢迎批评指正~ 1.首相简单介绍一下java中的错误(Error)和异常(Exception) 错误和异 ...

  5. Python类(三)-多继承的区别

    多继承的有两个方式,一个是广度优先,一个是深度优先Python2中经典类按深度优先,新式类按广度优先Python3中经典类和新式类都按广度优先 # -*- coding:utf-8 -*- __aut ...

  6. 2016.7.10 SqlServer语句中类似decode、substr、instr、replace、length等函数的用法

    Decode() 对应 case when函数 case CHARINDEX('/',start_point_name) when 0 then start_point_name else subst ...

  7. python中引号中有双引号

    #/usr/bin/python import os name = "ABC" #ABC是具体的模块名,产品经理每一次给的模块名字都不一样 os.environ['name'] = ...

  8. Maven构建war项目添加版本号

    上午接到一个新的需求,项目的war包打包之后,放在了阿里的OSS上,供其他项目下载更新时使用,但是只有一个项目名,也就是pom的artifactId,预期的结果是要加上一个版本号,能区分出是什么时候打 ...

  9. javascript变量声明提升(hoisting)

    javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都提升到当前作用域的最前面. 先看一段代码 1 2 3 4 5 var v = &quo ...

  10. Conda / Miniconda——软件包管理系统使用

    conda是一个非常好的python包管理软件,但是它的Minicoda是一个非常好的生信软件包管理软件,更多conda介绍多google. Miniconda简直就是生信人的福音,尤其是像我这种传统 ...