2020.7.13-2021.8.6 中兴华通笔记

Ubuntu是一个以桌面应用为主的Linux操作系统

Solaris 是Sun Microsystems研发的计算机操作系统。它被认为是UNIX操作系统的衍生版本之一

以·tar.gz为后缀的bai文件是一种压缩文件,在Linux和macOS下常见,
Linux和macOS都可以直接解压使用这种压缩文件。
windows下的WinRAR也可以使用,相当于常见的RAR和ZIP格式。
.tar.gz一般情况下都是源代码的安装包,需要先解压再经过编译、安装.才能执行。总而言之它是一个压缩文件。

"Failed to 方法名: ", e 打印错误日志

1、使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。

2、@repository则需要在Spring中配置扫描包地址,然后生成dao层的bean,之后被注入到ServiceImpl中
相当于service层的 @service 注解

//数据库查看表是否存在
1.select * from sysobjects where name = ‘SnListTemTable’
2.SELECT count(name) FROM [sysobjects] WHERE name = ‘COMMON_PARAMETERS_TABLE’

1,在access/mssqlserver里面支持的sql用法select top;
2,在mysql/oracle里面支持的sql用法为select…limit;
就使用而言两者没有什么区别.只是应用平台不一样而已.

内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。 xms 初始heap堆大小(存放对象) xmx 最大heap堆大小(运行程序)
Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽)。
GC overhead limit exceeded问题归根结底还是代码的问题,和内存无关,代码中出现了大量占用内存的对象。

常见字符串拼接耗时:从短到长
StringBuilder<StringBuffer<concat<+<StringUtils.join
1.无论如何直接用“+”号连接字符串都是最慢的
2.在拼接少数字符串(不超过4个)的时候,concat效率是最高的
3.多个字符串拼接的时候,StringBuilder/StringBuffer的效率是碾压的
4.在不需要考虑线程安全问题的时候,使用StringBuilder的效率比StringBuffer更高

调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList
, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,
remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。
java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常

stream()优点
无存储。stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。
为函数式编程而生。对stream的任何修改都不会修改背后的数据源,比如对stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新stream。
惰式执行。stream上的操作并不会立即执行,只有等到用户真正需要结果的时候才会执行。
可消费性。stream只能被“消费”一次,一旦遍历过就会失效,就像容器的迭代器那样,想要再次遍历必须重新生成。
stream().map()方法的使用示例:
再看几个例子:数组字母小写变大写
List list= Arrays.asList(“a”, “b”, “c”, “d”);
List collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());
System.out.println(collect); //[A, B, C, D]
数组所有元素,按某种规律计算:
List num = Arrays.asList(1,2,3,4,5);
List collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList());
System.out.println(collect1); //[2, 4, 6, 8, 10]

现在要删除表1中id和name同时等于表2中id和name的数据,可用以下语句:
delete from 表1 where exists (select 1 from 表2 where 表1.id=表2.id and 表1.name=表2.name);

继承父类 私有属性和方法无法继承

结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏.
原因:
1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。
如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为"隐藏"。
如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成,至于是否继承一说,
子类是有继承静态方法和属性,但是跟实例方法和属性不太一样,存在"隐藏"的这种情况。
2). 多态之所以能够实现依赖于继承、接口和重写、重载(继承和重写最为关键)。
有了继承和重写就可以实现父类的引用指向不同子类的对象。重写的功能是:"重写"后子类的优先级要高于父类的优先级,
但是“隐藏”是没有这个优先级之分的。
3). 静态属性、静态方法和非静态的属性都可以被继承和隐藏而不能被重写,因此不能实现多态,
不能实现父类的引用可以指向不同子类的对象。非静态方法可以被继承和重写,因此可以实现多态

sqlserver数据库重启 mysql
停止:net stop mssqlserver (mysql)
重启:net start mssqlserver (mysql)

每次循环里的字符串+连接,都会新产生一个string对象,在java中,新建一个对象的代价是很昂贵的
,特别是在循环语句中,效率较低。故在循环中一般使用StringBuffer.append来代替string的+运算符

retainAll是用来剔除不在指定集合的元素,而removeAll是用来剔除在指定集合中的元素。
所以使用上retainAll可以用来取交集,而removeAll可以用来排除值。

foreach循环不可以改变变量的值,但是可以用它去改变对象的值。

如果传入的是基本类型的变量,那么不会改变变量值
如果传入的是含有基本类型的引用数据类型 比如说 int[] 那么在此函数里的任何操作会对这个变量造成影响。
如果传入的是String 虽然这是一个引用数据类型 但是因为这个类在定义的时候就是不可变的 所以不会改变这个字符串变量
如果传入的是引用类型的变量 那么会改变变量值。

查询ORACLE数据库的实例名和服务名
1.实例名:
select instance_name from v$instance;
2.服务名:
select global_name from global_name;

resultSet.getMetaData() 获得表结构
1、得到查询结果,一个数据集
rs = stat.executeQuery("select * from "
+ table_name + " limit " + pageNum + “,500”);
2、得到结果集的结构信息,比如字段数、字段名等。
ResultSetMetaData rsmt=rs.getMetaData();
3、使用rs.getMetaData().getTableName(1))就可以返回表名
4、rs.getMetaData().getColumnCount()字段数
5、rs.getMetaData().getColumnName(i));字段名

不能从静态上下文引用非静态方法
不能从非静态方法引用静态方法

Array和List都属于顺序表。
Array是一段连续的存储结构
int[] i=new int[3]
i其实记录的是数组的首地址,而i[1]其实相当于在i的地址的基础上加上1个整数的地址偏移,然后再取这块地址中的值。
List则是不连续的存储结构,List的每个节点都有着一个Next属性,这个属性则记录着他的下一个节点的地址。
也就是说当我们想找第100个节点的时候,他还是需要从第一个节点,然后做99次Next操作,才能找到list[99]节点。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值