java自用的笔记(1)
作者:互联网
操作系统调用时每次得先把调用地址发过去,然后才能调用
存储单元越大,空间浪费率越大,时间利用更充分;存储单元越小,空间浪费率越小,时间浪费越多
磁盘与内存的存储单元(页)都是4kb,4kb对于磁盘来说很小,因此能存储更多,相对于内存来说不小,更注重于提升存取速度
一个存储单元至少消耗4kb,这是由操作系统的特性决定的,因此一个变量单独消耗4kb,而一个数组则是所有数组成员都存储在4kb中
StringBuffer()工作原理:申请一块足够大的数组空间,基于字符数组的原理,当字符串发生变化时,只需要在这一块空间中改变,不用申请新的空间,StringBuffer()与StringBuilder()工作原理基本相同,只不过StringBuffer()更安全
使用方法:
StringBuilder a = new StringBuilder();
a.append(str);
java中的输入
Scanner in = new Scanner(System.in);
• Scanner (InputStream in) 用给定的输人流创建一个 Scanner 对象。 • String nextLine( ) 读取输入的下一行内容。 • String next( ) 读取输入的下一个单词(以空格作为分隔符。) • int nextlnt( ) • double nextDouble( ) 读取并转换下一个表示整数或浮点数的字符序列。 • boolean hasNext( ) 检测输人中是否还有其他单词。 • boolean hasNextInt( ) • boolean hasNextDouble( ) 检测是否还有表示整数或浮点数的下一个字符序列。
java中的输出转换符:
用法:
格式化输出时间
获得当前代码所在路径
String dir = System.getProperty("user.dir");
面试点:
输出记事本中字符时,电脑中有一个形状库,读取代码时先在开头找出是由什么编码编程的,然后再在代码中按规定的长度读取并去库中进行匹配并输出
一个字的不同大小也是不同的编码
编程语言操纵word文档实质上是操纵编码,常用的字体字号都有一个编码库,不常用的则靠实时运算
for循环:
顺序:
凡是有规律的计算且能用数学公式的统一用数学公式且不用for循环
switch循环:
switch语句将从与选项值相匹配的 case 标签处开始执行直到遇到 break 语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签, 而有 default 子句, 就执行这个子句
面试点:
不写break语句的话,会一直向下执行,直到找到break语句为止
switch括号中的类型:
•类型为 char、byte、 short 或 int 的常量表达式。 •枚举常量。 •从 Java SE 7开始, case 标签还可以是字符串字面量。
break:只能中断一层循环,不能打断多层
continue:直接进入下一次循环,而不是彻底中断循环
大数值:
Biglnteger 和 BigDecima;Biglnteger 类实现了任意精度的整数运算, BigDecimal 实现了任意精度的浮点数运算;
不能用+或*,只能用add 和 multiply 方法。
数组
数组是一个引用类型而不是基本类型
一维数组:
二维数组:
三维数组:
不规则数组:
引用类型句柄和数值不存储在一起:
引用类型的“=”相当于把地址换掉:
一维数组:句柄与数组不在一起,而是指向数组元素,里面的元素是连续的
二维数组:句柄与一维数组的指向数组(以一维数组指向作为元素的数组)不在一起,而是指向有一维数组的指向数组,一维数组句柄与实际数字不在一起,而是指向数组元素
更改上述二维数组中第一行数组元素:a[0],则二维数组中第一个存储元素变为新的排列后的一维数组的地址6754并且指向它,并把旧的指向舍弃
相当于c++中指针更改指向,因此只要是引用类型的“=”,就是改变其指向地址
字符串数组:
更改arr[0] = "yyyyy",原理与二维数组相同
for each 循环
数组排序:Arrays.sort(a):对数组a进行排序
排序结果
标签:java,一维,指向,句柄,笔记,自用,数组,4kb,读取 来源: https://blog.csdn.net/perturb/article/details/122349898