1.

当System.out.println()方法的参数是Object类型时,println()方法会自动调用Object对象的toString()方法,然后显示toString()方法返回的字符串。

2.

若Java程序中有多处出现字符串常量"Hello",则Java编译程序只创建一个String对象,所有的字符串常量"Hello"将使用同一个String对象,例如下面的语句:
String s1="Hello";
String s2=" Hello";
String s3=new String("Hello");
String s4=new String("Hello");
则:s1与s2是同一个对象,而s1、s3与s4是三个不同的对象,尽管它们所表示的字符序列相等。

3.

String类的对象都是线程安全的。StringBuffer代表线程安全的可变字符序列。
String类重写了从Object类所继承的equals()方法,而StringBuffer类没有重写该方法。
StringBuffer或StringBuilder是不能比较大小的。

4.

所有的包装类都是final类型,因此不能创建它们的子类。
包装类是不可变类,所有包装类的对象都是线程安全的。
包装类的层次结构

5. 

Math类有两个静态常量:E(自然对数)和PI(圆周率)。
Math类是final类型的,因此不能派生子类。
Math类的构造方法是private类型的,因此Math类不能够被实例化。

6. 正则表达式

(eg1)重复字符压缩:将字符串中连续重复的字符压缩成一个。
例如, “aaabbbcccddd11122++***…33”压缩成“abcd12+*.3”。
相关代码是:设String s =””;则:String rs = s.replaceAll(“(.)(\\1)*”,”$1”);
说明:(.)表示一号组,匹配任何一个字符,\1表示与一号组相同的字符,$1表示在replaceAll()方法中,与一号组相匹配的那个子串。

(eg2)由0~9组成有不重复的7个数字组成的数字串。正则式是:((\d)(?!.*\2.*)){7}

7.

数组复制:System.arraycopy(arr1, start1, arr2, start2, len);
排序:Arrays.sort(a);
Arrays.binarySearch(array, key) 若找到,则返回其index(>=0),若找不到,则返回负数(<0),该负值含义是: -(插入点位置) -1 。再减去1是为了保证:找不到必须返回负数。

向TreeSet容器中加入同类型的对象,要求这些对象的类必须实现Comparable接口。

8.

LinkedList在内部是采用双向循环链表实现的,插入与删除元素的速度较快,随机访问速度则较慢。
LinkedList也是线程不安全的

 9.

HashMap是基于HashCode的,若想正确使用HashMap,则需重写hashCode()和equals()方法。HashMap不是线程安全的,若要线程安全,可用:Map m = Collections.synchronizedMap(new HashMap());

 10.

redirect:请求重定向:客户端行为,本质上为2次请求,地址栏改变,前一次请求对象消失。举例:你去银行办事(forward.jsp),结果告诉你少带了东西,你得先去***局办(index.html)临时身份证,这时你就会走出银行,自己前往***局,地址栏变为index.html.

forward:请求转发:服务器行为,地址栏不变。举例:你把钱包落在出租车上,你去警察局(forward.jsp)报案,警察局说钱包落在某某公司的出租车上(index.html),这时你不用亲自去找某某公司的出租车,警察局让出租车自己给你送来,你只要在警察局等就行。所以地址栏不变,依然为forward.jsp

创建一个以JDBC连接数据库的程序,包含7个步骤:

(1)加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。
(2)提供JDBC连接的URL: 连接URL定义了连接数据库时的协议、子协议、数据源标识。
(3)创建数据库的连接:要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
(4)创建一个Statement要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
        <1>执行静态SQL语句。通常通过Statement实例实现。
        <2>执行动态SQL语句。通常通过PreparedStatement实例实现。
        <3>执行数据库存储过程。通常通过CallableStatement实例实现。
(5)、执行SQL语句: Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
(6)、处理结果:两种情况
        <1>执行更新返回的是本次操作影响到的记录数。
        <2>执行查询返回的结果是一个ResultSet对象。
(7)关闭JDBC对象:操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:<1>关闭记录集 <2>关闭声明

12. 

JVM内存配置参数: “-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3”
-Xms -Xmx:分别设置堆的最小值和最大值,如果要设置成堆的大小可变,那么可以将最大值和最小值设置成不一样,如果要将堆大小固定,那么只需将最大和最小值设置成一样的就行。
  jvm中分为堆和方法区、 堆又进一步分为新生代和老年代、方法区为永久代
  堆中区分的新生代和老年代是为了垃圾回收,新生代中的对象存活期一般不长,而老年代中的对象存活期较长,所以当垃圾回收器回收内存时,新生代中垃圾回收效果较好,会回收大量的内存,而老年代中回收效果较差,内存回收不会太多。
  基于以上特性,新生代中一般采用复制算法,因为存活下来的对象是少数,所需要复制的对象少,而老年代对象存活多,不适合采用复制算法,一般是标记整理和标记清除算法。
  因为复制算法需要留出一块单独的内存空间来以备垃圾回收时复制对象使用,所以将新生代分为eden区和两个survivor区,每次使用eden和一个survivor区,另一个survivor作为备用的对象复制内存区。
综上:
-Xmn设置了新生代的大小为5120m,而-XXSurvivorRatio=3,所有将新生代共分成5分,eden占三份,survivor占两份,每份1/5

13. 

运算符参数传递
与运算符&:保持不变的位,要用 1 去进行&运算;要清零的位用 0 进行&运算
或运算符|:保持不变的位,要用 0 去进行|运算;要置一的位用1进行|运算
异或运算符^:相同是0,不同是1.
保留符号位的右移运算符>>: 向右移一位相当于整除2

14. 参数传递

在方法调用运行时,首先对实在参数列表从左到右依次计算各个实在参数的值,然后在运行栈中为该方法的所有的形式参数变量分配空间,接着再为该方法体中所有其他局部变量在运行栈中分配空间,最后将已计算出来的各个实在参数的值抄送到相应的形式参数变量空间之中。这一切做完后,方法调用才开始执行方法体中的第一条语句。一旦运行完成,自动从运行栈撤消该方法的所有信息,因而该方法在运行栈中为形式参数及局部变量分配的空间也就自动撤消。

15. 命名规范

(1) 类名和接口名:首字母大写,如果类名由几个单词组成,采用陀峰标识,即每个单词的首字母大写,其余字母小写,例如,HelloWorld。
(2) 方法名和变量名:首字母小写(构造方法除外),如果方法名或变量名由几个单词组成,那么除第一个单词外,其余每一个单词的首字母大写,其他字母小写,例如,toString()。
(3) 包名:采用小写形式,例如,org.innerclasses.anonymous。
(4) 常量名:采用大写形式,如果常量名由几个单词组成,单词之间以下划线“_”隔开,例如,final int VALUE_ONE = 9。

16.

在类的static方法中,是不能使用this的。这是因为类方法是一直存在,随时可用的,而此时可能该类一个对象都没有创建,自然this也就不存在。

Java---杂记的更多相关文章

  1. java杂记——数组拷贝

    这里介绍两种java提供的数组拷贝方法: (1)Arrays提供的copyOf(T src, T desLength)和copyOfRange(T src, int from, int to) (2) ...

  2. Java杂记9—NIO

    前言 非阻塞IO,也被称之为新IO,它重新定义了一些概念. 缓冲buffer 通道 channel 通道选择器 BIO 阻塞IO,几乎所有的java程序员都会的字节流,字符流,输入流,输出流等分类就是 ...

  3. JAVA杂记

    写在前面:期末考试要来了,对于一个暑假自学了几天JAVA之后一个学期划水的人来说现在就是踏上了JAVA预习之路.下面是自己xjb记的东西,主要是根据老师给的流程图总结的自己认为需要的一些零碎的小知识, ...

  4. 【Java杂记】Equals 和 hashCode

    equals 和 hashCode含义 equal:判断两个对象是否相等,如果相同,返回true 否则返回false hashcode: 返回一个int数 Object 默认(内部地址转化为一个数字) ...

  5. Java 数据持久化系列之 HikariCP (一)

    在上一篇<Java 数据持久化系列之池化技术>中,我们了解了池化技术,并使用 Apache-common-Pool2 实现了一个简单连接池,实验对比了它和 HikariCP.Druid 等 ...

  6. Linux环境下如何计算CPU占用率【华为云技术分享】

    1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [root@rh ~]$ cat /proc/ ...

  7. Java-每日学习笔记(数据库与idea技巧)

    Java杂记-2020.07.28 简单记录下今天项目用到的东西还有技术公众号学到的一些知识点 Java事务 idea编码技巧 数据库快速插入100万条数据 Java实现sql回滚 Java事务 事务 ...

  8. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  9. 有关Java的日期处理的一些杂记

    在企业应用开发中,经常会遇到日期的相关处理,说实话JDK自带的日期方法很难用.就我个人而言我一般都会采用joda-time来替代JDK自身的日期. 这篇文章是杂记,所以写的比较零散,希望大家不要见怪. ...

  10. java基础(杂记)

    java基础夯实(杂记):1:创建实例对象可以通过无参的构造函数然后调用成员变量去初始化属性,也可以自己定义有参构造方法直接初始化属性,当属性为private时我们可以通过getset方法间接访问:2 ...

随机推荐

  1. 如何防止 Elasticsearch 服务 OOM ?

    ES 和传统关系型数据库有很多区别, 比如传统数据中普遍都有一个叫"最大连接数"的设置.目的是使数据库系统工作在可控的负载下,避免出现负载过高,资源耗尽,谁也无法登录的局面. 那 ...

  2. java springboot 读取自定义配置文件

    java springboot 读取自定义配置文件 application.properties.test.properties maven中引用 : <dependency> <g ...

  3. The bean ‘xxx‘ could not be injected as a ‘xxx‘because it is a JDK dynamic proxy that implements错误解决

    1.解决方法:使用@Autowired 2.@autowired和@resource注解的区别区别:1.@Autowired注解由Spring提供,只按照byType注入:@resource注解由J2 ...

  4. 支付宝签名和验签使用JSONObject是最优解。json字符串顺序和==符号都一致演示代码

    支付宝签名和验签使用JSONObject是最优解.json字符串顺序和==符号都一致演示代码 支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象https://www.c ...

  5. 牛客小白月赛96(待F)

    比赛链接:牛客小白月赛96 赛时感受 赛时在前面卡的时间有点长,C题没开longlong wa了n发,D题没考虑负数又wa了n发,然后来写E的时候时间就不长了,匆忙写一次交一发. A 思路 当其中一个 ...

  6. 05-CentOS防火墙

    概述 CentOS中的防火墙有很多,如SELinux.Firewall.TCP Wrappers.iptables/netfilter. 每种防火墙都有各自擅长的地方. 这里主要讲两种:SELinux ...

  7. UART和RS232、RS485的关系是什么?

    串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232则是其中最简单最常用的通讯方式.但是初学者往往搞不清有关的名词如UART和RS232或RS485之间是什么关系,因为它们经常被放到语句 ...

  8. uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系

    按各地址起作用的顺序,uboot引导linux内核启动涉及到以下地址: load address: entry point: 这两个地址是mkimage时指定的 bootm address:bootm ...

  9. Python_10 debug、类和对象

    一.查缺补漏 APP测试流程梳理https://www.cnblogs.com/dengqing9393/p/6497068.html 有关类的知识点http://testingpai.com/art ...

  10. IPv6地址的文本表示规范

    背景 随着IPv6越来越普及,经常要跟IPv6地址打交道,迫切需要一个统一的IPv6地址文本表示规范. RFC4291简单的说明了如何将IPv6地址表示成文本形式,但有很多有歧义和不周全的地方. RF ...