概述:
    0.注释
    1.基本数据类型(有且仅有8个):
         1.1 整型:int,short,long,byte(表示一个字节,[-128,127]) 
         1.2 字符型:char
         1.3 浮点型:float,double  
         1.4 布尔型:boolean
         1.5 注:String(属于引用类型),不属于基本数据类型。
                      数据类型有(3种):基本数据类型,枚举类型,引用类型(Reference Type)
   2.运算符:++,--,+,-,*,/,[],(),<<,>>,?: .etc
     2.1 严格的浮点运算结果:在该方法的修饰符中加上关键字strictfp(Eg:public static strictfp main(String [] args))
   3.变量
       3.1 变量
       3.2 常量(final)
          3.2.0 含义:表示这个变量只能被赋值一次。(类比C++的const)
          3.2.1 修饰符:final;常量名规范:一般地,大写  
          3.2.2 类常量(修饰符:static final 变量):可以使该变量成为在一个类的多个方法中使用的常量
          3.2.3 Java暂时保留 const关键字。 
   4.字符串:
        4.1 String类:
                 4.0 概念:
                       4.0.1.String是final类,不可以被继承。
                                String不属于基本数据类型。
                 4.1.1 子串
                 4.1.2  拼接
                 4.1.3 不可变字串:
                          只读字符串。(final决定) 
                          String类没有提供用于修改字符串的方法。
                          优点:不可变字符串可以让字符串共享。
                          各种字符串存放在公共的存储池中。
                          字符串变量指向存储池相应的位置。(类似于 char*指针)
                        (注意:Eg:greeting = greeting.substring(0,3)+"p!" 的物理变化过程所产生的空间浪费和低下的效率)
                 4.1.4 检验字符串是否相等
                           0.原因:一定不能使用==运算符检测两个字符串是否相等!这个运算符只能确定两个字符串是否放在同一个位置。当然,如果字符串放置在同一位置上,它们必然相等。但是,它们完全有可能将内容相等的多个字符串的拷贝放置在不同的位置上。
                              注:实际上,只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的。
                           1.方法:equals(),equalsIgnoreCase(), compareTo() .etc 
                           2.String str1 = "hello";
                              String str2 = "he" + new String("llo");
                              System.err.println(str1 == str2);

答案:false

解析:因为 str2 中的 llo 是新申请的内存块,而 == 判断的是对象的地址而非值,所以不一样。如果是String str2 = str1,那么就是 true 了。

4.1.5 空串("")与Null串      
                 4.1.6 代码点与代码单元
                             1)方法(java.lang.string):
                                           length(),
                                           charAt(var),
                                           equals(var),
                                           indexOf(var),
                                           replace(args,args), 
                                           trim(), 
                                           substring(---)
                                           toLowerCase(),
                                           toUpperCase() .etc
                             2)注释:类似于C/C++,Java字符串的代码单元和代码点从0开始计数。
                 4.1.7String与字符串的区别:【见】
        4.2 StringBuild类(jdk 1.5)/StringBuffer类
                4.2.1 弥补和提高String类的空间效率和时间效率
                4.2.2 方法(java.lang.StringBuilder):
                                   stringbuilder.append(str);
                                   stringbuilder.append(char);   
                                   String completeString = builder.toString();       
                4.2.3 StringBuilder与StringBuffer的区别:
                         0)StringBuilder与StringBuffer的API均相同
                         1)StringBuilder类的前身就是StringBuffer类,StringBuilder类的效率高于StringBuffer类 

2)StringBuffer允许采用多线程的方式执行添加/删除字符的操作。
                            StringBuilder支持所有字符串在一个单线程中编辑(一般地)
                            (因:StringBuilder的所有方面都没有被 synchronized(同步的) 修饰)
   参考文档:【String s=new String("abc")创建了几个对象?】http://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html;
                      

    5.输入输出:
          5.1读取输入 
               Scanner in = new Scanner(System.in)
               Scanner in = new Scanner(Paths.get("file.txt")) (文件的输入输出)
               nextLine():输入行可以包含空格
               next():输入行不包含空格
               hasNext()
               nextInt()读取整形 .etc 
               Scanner类不适合从控制台读取密码:
                             0.java.lang.System: static Console console()
                             1.(Console cons = System.console();)
                             2.java.io.Console:readPassword();readLine()
        5.2格式化输出
                1.printf() 与%字符的结合:
                         d 十进制整数
                         s 字符串
                         f 定点浮点数  
                        %百分号
                        tx 日期【x为日期和时间的转换符(见 Java核心技术卷I Page:58)】 .etc
                        Eg:System.out.printf("姓名:%d",name)  
                2.Formattable接口
                        方法:formatTo();toString()  
                3.创建一个格式化的字符串(静态方法 String.format()):
                        String message = String.format("你好呀,今天是:%tx",date)
                 4.Format类,DecimalFormat类.etc
          6.大数值:
                6.1 BigInterger 实现任意精度的整数运算(Java.math.BigInterger)     
                6.2 BigDecimal 实现任意精度的浮点运算  (Java.math.BigDecimal)
          7.数组 
                7.0参考文档:
                       Java数组(初学者必看)http://www.importnew.com/7127.html
                7.1性质:
                          1)数组被作为Java对象,通过new创建。
                          2)获取数组容量:Arrays.length()可得数组长度
                          3)数组存储在Java堆的连续内存空间
          4)数组一个固定长度的数据结构
          5)你可以通过使用[]操作符访问数组元素
          6)如果没有明确的初始化数组元素,那么数组就会用默认的类型值初始化
          7)数组可以轻易的转换成ArrayList
          8)通过java.utils.Arrays类去操作数组,通过使用Arrays你可以排序数组,可以做二分搜索。          
          9)java.lang.System.arrayCopy()提供了实用方法拷贝元素到另一个数组。
          10)支持多维数组
          int[][] multiArray = new int[2][3]
          
int[][] multiArray = {{1,2,3},{10,20,30}};

 

                7.2数组与字符的存储区别?
                7.3数组创建方式: 
                      int Arrs0[] = {3,5,66,9,4,5};   
                         int[] intArray1;   //creating array without initializing or specifying size
                         int intArray2[];  //another int[] reference variable can hold reference of an integer array
                         int[] intArray3 = new int[10]; //creating array by specifying size
                         int[] intArray4 = new int[]{1,2,3,4}; //creating and initializing array in same line. 
                        (可以读int[] Var为int数组 Var,更容易理解其语法)

Java SE之基本程序设计结构的更多相关文章

  1. JAVA核心技术I---JAVA基本程序设计结构

    一:讨论一个简单的Java程序 package hello; public class Hello { /** * @param args */ public static void main(Str ...

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

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

  3. 7.20实习培训日志-Java基础程序设计结构

    Java基础程序设计结构 在 Math 类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程,如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用StrictMath类,它使用 ...

  4. 重新学习Java——Java基本的程序设计结构(二)

    上一节简单回顾了Java基本的一些程序设计的知识,这一节将继续根据<Java核心技术>这本书,进行这方面知识的复习与探索. 1. 字符串 Java字符串实际上就是Unicode字符序列.例 ...

  5. Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】

    Java 的基本程序设计结构 现在, 假定已经成功地安装了 JDK,并且能够运行第 2 章中给出的示例程序.我们从现在开始将介绍 Java 应用程序设计.本章主要介绍程序设计的基本概念(如数据类型.分 ...

  6. 201771010142 张燕 Java的基本程序设计结构第二周学习总结

    第三章 Java的基本程序设计结构 第一部分 理论知识学习部分 一 基本知识: 1.标识符:由字母.下划线,美元符号和数字组成,第一个符号不能为数字,可以用作类名.变量名.方法名.数组名和文件名等. ...

  7. 1-03 Java的基本程序设计结构

    1-03 Java的基本程序设计结构 3.1 & 3.2 在一个单词中间使用大写字母的方式称为骆驼命名法.以其自身为例,应该写成CamelCase). 与C/C++一样,关键字void表示这个 ...

  8. JavaSE&&JavaEE&&JavaME的区别【Java中常用的包结构】

    一.javaEEJavaSEJavaME用的同一个jar包吗? javaEE JavaSE javaME 用的JDK是同一个,开发j2SE工程的话只要有JDK就可以了,开发J2EE工程和J2ME工程除 ...

  9. Java虚拟机(一)结构原理与运行时数据区域

    我们来学习Java虚拟机的结构原理与运行时数据区域. 1.Java虚拟机概述 Oracle官方定义的Java技术体系主要包括以下几个部分: Java程序设计语言 各种平台的Java虚拟机 Class文 ...

随机推荐

  1. 使用Java HttpComponent/HttpClinet 调用 WebAPI问题的解决

    几个关键字: WebAPI, Android, Apache HttpComponent/HttpClient 问题:无论怎么测试, WebAPI的FormBody value总是空. 最简单的代码 ...

  2. appium学习记录1

    xpath定位: 语法 driver.find_element_by_xpath("//android.widget.EditText[@index="登陆"/../pr ...

  3. 荣耀实锤Magic2或将助力AI,再次带动成长?

    临近年底,热闹了一年的手机圈纷纷偃旗息鼓,准备为明年3月的新品发力.然而今天(12月7日),恰逢节气大雪,@荣耀手机 在微博发布了一张预热海报,随后荣耀总裁赵明转发这条微博表示「关于技术,真的有很多话 ...

  4. Django-website 程序案例系列-10 cookie 和 session的应用

    cookie:  现在所有网站基本都要开启cookie 客户端浏览器上的一个文件 例如:   {‘key’: 'sefwefqefwefw'} 是一个键值对 简单实现cookie认证: user_in ...

  5. BZOJ5317 JSOI2018部落战争(凸包)

    即询问凸包是否有交.这显然可以直接求半平面交,但是复杂度O(q(n+m)),且没有什么优化空间. 更直接地表示,即相当于询问是否存在点a∈A,b∈B,使得a+d=b.移项,得到d=b-a.可以发现等式 ...

  6. MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容

    MySQL将一张表的某些列数据,复制到另外一张表 INSERT INTO t_topic_content(content,topicId) SELECT content,id FROM t_topi ...

  7. 自学Linux Shell12.5-while、until命令

    点击返回 自学Linux命令行与Shell脚本之路 12.5-while.until命令 until 循环与 while 循环在处理方式上刚好相反. while循环用于不断执行一系列命令,也用于从输入 ...

  8. 青蛙跳台阶(C、Python)

    C语言: /* ----------------------------------- 当n = 1, 只有1中跳法:当n = 2时,有两种跳法:当n = 3 时,有3种跳法:当n = 4时,有5种跳 ...

  9. CPP--借助神器VS理解内存存储(含大小端对齐)

    单位,补码之类的可以看这个:http://www.cnblogs.com/dotnetcrazy/p/8178175.html 先说说大小端对齐的事情,然后再看: 内存最小单位==>Byte,i ...

  10. HDU 4292 Food (网络流,最大流)

    HDU 4292 Food (网络流,最大流) Description You, a part-time dining service worker in your college's dining ...