java的基本程序设计之个人总结要点

这是个人看完java核心卷一书之后,罗列的一些比较重要的点子,希望共享给大家。

【数值类型】

1.从java7开始,加上前缀0b就可以写二进制数,例如:0b1001代表9,在java中,所有的数值类型所占的字节数量与平台无关。注意:Java没有任何无符号类型
2.float类型有一个后缀F,而没有加后缀F的被默认为double,如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类

【变量】
1.在java中,不区分变量的声明和定义
2.类常量:在java中,希望某个常量能被一个类中的多个方法使用,通常将这些常量称为类常量。可以使用关键字static final 设置一个类常量

需要注意的是,类常量的定义位于main方法的外部,因此在同一个类中的其他方法也可以使用这个常量,而且,一个常量被声明为public,那么其他类的方法也可以使用这个常量

【字符串】

1..String里面有一个substring方法:substring(m,n)。这个方法的功能是用来从一个较大的字符串里面截取一个子串,从m位置开始复制,其中的n是不想复制的第一个位置,在substring里都是从0开始计数,其次还比较容易计算子串的长度,就是n-m
2..如果需要由较短的字符串构建字符串,采用字符串连接方式效率太低,可以使用StringBuilder类就可以避免这个问题,先构建一个这种类的对象,每次需要添加一部分内容时,就调用append方法
3..如果想要输入密码,因为Scanner类输入是可见的,所以可以用Console类来实现,而这个每次只能读取一行输入,而没有能够读取一个单词或一个数值的方法

【块作用域】

块作用域:不允许在嵌套的两个块中声明同名的变量,因为有可能会导致程序设计错误,因此java中不允许这样做

【大数值】
1.BigInteger类和BigDecimal类,前者实现了任意精度的整数运算,后者实现了任意精度的浮点数运算
2.使用静态的valueOf方法可以将普通的数值转换为大数值
注意:不能使用人们熟悉的算术运算符来处理大数值,而需要使用大数值类中的add(+),multiply(*),subtract(-),divide(/)方法,因为java没有提供运算符重载功能

【数组】

1.数组列表(ArrayList):一旦创建了数组,就不能再改变它的大小,如果经常需要在运行过程中扩展数组的大小,就应该使用另一种数据结构——数组列表(ArrayList)

2.for each循环数组,不必为下标的起始值和终止值而操心,要想打印数组,可以使用Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,用逗号分隔

3.数组拷贝:在java中,允许将一个数组变量拷贝给另一个数组变量,这时,两个变量将引用同一个数组,如果希望将一个数组中所有的值拷贝到一个新数组中去,可以使用Array类的copyTo方法,这个方法可以用来增加数组的大小

4.数组排序:可以使用Array类中的sort方法
5.for each 循环语句不能自动处理二维数组的每一个元素,它是按照行,也就是一维数组处理的,要想访问二维数组a中的所有元素,得使用两个嵌套的循环,要想快速的打印一个二维数组的数据元素列表,可以调用:System.out.println(Arrays.deepToString(a));

java的基本程序设计之个人总结要点的更多相关文章

  1. 【实战Java高并发程序设计 7】让线程之间互相帮助--SynchronousQueue的实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  2. 【实战Java高并发程序设计6】挑战无锁算法:无锁的Vector实现

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  3. 【实战Java高并发程序设计 5】让普通变量也享受原子操作

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象 ...

  4. 【实战Java高并发程序设计 4】数组也能无锁:AtomicIntegerArray

    除了提供基本数据类型外,JDK还为我们准备了数组等复合结构.当前可用的原子数组有:AtomicIntegerArray.AtomicLongArray和AtomicReferenceArray,分别表 ...

  5. 【实战Java高并发程序设计 3】带有时间戳的对象引用:AtomicStampedReference

    [实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference AtomicReference无法解决上述问题的根 ...

  6. 【实战Java高并发程序设计 1】Java中的指针:Unsafe类

    是<实战Java高并发程序设计>第4章的几点. 如果你对技术有着不折不挠的追求,应该还会特别在意incrementAndGet() 方法中compareAndSet()的实现.现在,就让我 ...

  7. 《实战java高并发程序设计》源码整理及读书笔记

    日常啰嗦 不要被标题吓到,虽然书籍是<实战java高并发程序设计>,但是这篇文章不会讲高并发.线程安全.锁啊这些比较恼人的知识点,甚至都不会谈相关的技术,只是写一写本人的一点读书感受,顺便 ...

  8. JAVA高并发程序设计笔记

    第二章 Java并行程序基础 1.join()的本质是让调用线程wait()在当前线程的对象上 2.Thread.yiedl()会使当前线程让出CPU 3.volatile保证可见性,无法保证原子性( ...

  9. Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记

    第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...

随机推荐

  1. linux 关闭防火墙

    ) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off ) 即时生效,重启后失效 开启: service iptables start ...

  2. JSP编译原理图解

  3. c++宏使用总结【转】

    C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境. ANSI标准定义的C语言预处理程序包括下列命令:  #de ...

  4. ugui,button的一个坑

    如果ugui button下面挂了一些image或text,而这些image或text的范围超出了button本身的范围,则应将image和text的raycast Target属性的勾选去掉,否则只 ...

  5. split 转义

    问题:str.split("?");报错了 原因: .?*+!^$[]()\在正则里需要转义 转义需双反斜线.splt("\\+");

  6. 【uTenux】学习一个嵌入式操作系统-uTenux

    [这个是汇总] 最近有点时间,参加了EEPW论坛和悠龙咨询组织的一个嵌入式操作系统uTenux试用活动.本来想借助这个活动提供的开发板做一个小项目,奈何OS使用功底太次.于是,这个活动被我降低到了学习 ...

  7. Unity上一页下一页切换功能实现源码(仅供参考)

    在做项目时我们有时需要实现切换上一页下一页图片,切换上一首下一首歌曲等等类似的功能.这里写了个简单的实现源码(仅供参考),要是有更好的方法欢迎提出来,共同进步~ 以切换上一页下一页图片为例: usin ...

  8. SQL查询树形结构的所有子节点

    如下一张表test:id name pid----------- ---------- -----------1 电器 NULL2 家电 13 冰箱 24 洗衣机 25 电脑 16 笔记本 57 平板 ...

  9. 在java下使用log4j2记录日志

    1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jarlog4j-api-xx.jarlog4j-web-xx.jar(web项目的需要引用) 3.配置 ...

  10. Python 配置日志

    Python 2.6+ def cfgLogging(): from logging.handlers import RotatingFileHandler console = logging.Str ...