java中遗留的小问题
一、类型转换
short s = 1; s = s + 1; //false,因为1是int类型,会损失精度
short s = 1; s += 1; //true,因为+=有自带强转
二、逻辑运算符
^逻辑异或:相同为false,不同为true
例如:情侣关系:男男、男女、女男、女女
三、参数传递
基本类型:形参的改变对实参没有影响
引用类型:形参的改变直接影响实参
四、成员变量和局部变量
成员变量:在类中方法外
局部变量:在类中方法内
五、多态
同一个引用指向多个对象,表现各个不同对象的方法。
父 f = new 子1();
父 f = new 子2();
父 f = new 子3();
六、抽象类:abstract
抽象类有构造方法,但是不能实例化;
成员方法既可以是抽象的(强制要求子类实现抽象方法,被abstract修饰的抽象方法无方法体(没有大括号{})),也可以是非抽象的(子类继承用,提高代码复用性)。
作用:用于子类访问父类数据的初始化。
抽象类不能使用private/final/static关键词
七、局部内部类访问局部变量
局部内部类访问局部变量必须用final修饰局部变量,使局部变量为常量来访问。
class Outer {
private int num = 10;
public void method() {
//int num2 = 20;
final int num2 = 20;
class Inner {
public void show() {
System.out.println(num);
//从内部类中访问本地变量num2; 需要被声明为最终类型
System.out.println(num2);//20
}
}
Inner i = new Inner();
i.show();
}
}
八、TreeSet排序
1.自然排序:(元素比较)
让元素所属的类实现自然排序接口 java.lang.Comparable,必须重写compareTo方法。
2.比较器排序:(集合比较)
让集合的构造方法接收一个比较器接口的子类对象 java.util.Comparator。
内部类:
TreeSet<T> treeSet = new TreeSet<T>(new Comparator<T>()(
public int compare(T t1, T t2) {
int num = t1.getName().length() - t2.getName().length();
int num2 = num == 0 ? t1.getName().compareTo(t2.getName()) : num;
int num3 = num2 == 0 ? t1.getAge() - t2.getAge() : num2;
return num3;
}
));
九、Map遍历
A、根据键找值
//创建集合对象
Map<K,V> map = new HashMap<K,V>();
//获取所有的键(键的集合)
Set<K> set = map.keyset();
//遍历键的集合
for(K key : set) {
V value = map.get(key);
syso(key + "-" + value);
}
B、根据键值对对象找键和值
//创建集合对象
Map<T,V> map = new HashMap<T,V>();
//获取所有键值对对象的集合
Set<Map.Entry<K,V>> set = map.entrySet();
//遍历键值对对象的集合,得到每一个键值对对象
for(Map.Entry<K,V> me : set) {
K key = me.getKey();
V value = me.getValue();
Syso(key + "," + value);
}
十、contains()方法底层依赖的是equals()方法,所以判断对象包含另一对象,需先重写equals()方法。
十一、Arrays工具类:public static <T> List<T> asList(T... a):把数组转成集合
十二、new FileInputStream("") 和 class.getClassLoader().getResourceAsStream("")
前者根目录为项目根目录或者绝对路径,后者根目录为src目录
java中遗留的小问题的更多相关文章
- 。Java中的一些小细节
1.main方法. ------任何一个Java程序都有一个main方法,它是程序的入口. ------当执行 “ java + 类名 “ 这个命令时,JVM就会去加载这个类,并且寻找这个类中的m ...
- C#、Java中的一些小功能点总结(持续更新......)
前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...
- C#、Java中的一些小知识点总结(持续更新......)
前言:在项目中,有时候一些小的知识,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小知识点,以备用,并持续更新...... 1.禁用DataGridV ...
- java中方法传值小知识解析
1.java语言参数之间只有值传递,包括按值调用和按引用调用. 一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值. 按值调用:包括八大基本数据类型都是按值调用.传值的时候,也 ...
- java中的定时任务小示例
package package_1; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; ...
- Java中如何判断当前环境是大端字节顺序还是小端字节顺序
Java非字节类型的基本类型,除了布尔型都是由组合在一起的几个字节组成的.这些数据类 型及其大小总结在表 2-1 中. 表:基本数据类型及其大小 数据类型 大小(以字节表示) Byte 1 Char ...
- java发布项目后注意小点,以及对于金额在java中的处理
项目在发布之后,有时会进行一些小的地方的修改,特别是对于一些常量的修改,如定义的一些特殊账户,第三方的key值,当修改的时候,我之前就偷懒过,因为项目在服务器上面,访问速度也受到限制,替换整个项目很麻 ...
- java中 try catch finally和return联合使用时,代码执行顺序的小细节
代码1测试 public static void main(String[] args) { aa(); } static int aa() { try { int a=4/0; } catch (E ...
- Java中splite的用法与小技巧
在java.lang包中也有String.split()方法,与.net的类似,都是返回是一个字符型数组,但使用过程中还有一些小技巧.如执行:"2|33|4".split(&quo ...
随机推荐
- shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
[root@localhost ~]# cat uname.sh #!/bin/bash main=`uname -r | awk -F . '{print $1}'` minor=`uname -r ...
- JAVA8学习——Stream底层的实现一(学习过程)
Stream底层的实现 Stream接口实现了 BaseStream 接口,我们先来看看BaseStream的定义 BaseStream BaseStream是所有流的父类接口. 对JavaDoc做一 ...
- java: 程序包com.sun.media.jai.codec不存在
Q:IDEA编译时提示"java: 程序包com.sun.media.jai.codec不存在" A:添加下面的repository到pom.xml中 <repository ...
- 网络测试技术——802.1X_MD5认证(上篇)
一.MD5认证简介 1.认证过程 (1)无隧道 (2)客户端和服务器之间进行 2.单向认证 (1)服务器对客户端认证 3.缺点 (1)用户名明文传输 (2)弱MD5哈希 二.MD5认证过程 1.客 ...
- 【C# Task】开篇
概览 在学task类之前必须学习线程的知识. 以下是task命名空间的类的结构图 1.2种任务类型: 有返回值task<TResult> .无返回值task. 2.2座任务工厂 TaskF ...
- 数仓建模—ID Mapping
早晨起床的时候,发现自己尿分叉,我没有多想,简单洗洗就匆忙出门.路过早餐店,我看到师傅熟练的拉扯一小块面团,拉至细长条,然后放入油锅中,不一会功夫,一根屎黄色的油条便出锅了,卖相不错.我在想,小到炸屎 ...
- 【.NET6+WPF】WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入
前言:在C/S架构上,WPF无疑已经是"桌面一霸"了.在.NET生态环境中,很多小伙伴还在使用Winform开发C/S架构的桌面应用.但是WPF也有很多年的历史了,并且基于MVVM ...
- TypeScript学习第二天:认识ts的数据类型
目录 1,类型总览 2,基本类型 2.1,布尔 2.2,数字 2.3,字符串 2.4,Null 2.5,undefined 2.6,symbol 2.7,bigint 3,引用类型 3.1,数组 Ar ...
- Python 完美诠释"高内聚"概念的 IO 流 API 体系结构
1. 前言 第一次接触 Python 语言的 IO API 时,是惊艳的.相比较其它语言所提供的 IO 流 API . 无论是站在使用者的角度还是站在底层设计者的角度,都可以称得上无与伦比. 很多人在 ...
- 使用 MobaXterm 连接矩池云 GPU服务器
Host Name(主机名):hz.matpool.com 或 hz-t2.matpool.com,请以您 SSH 中给定的域名为准. Port(端口号):矩池云租用记录里 SSH 链接里冒号后的几位 ...