`
hongbiangoal
  • 浏览: 15098 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

CoreJava --基本语法

阅读更多

1.  一个java源文件只有一个public类且类名与文件名一致。注:一个可运行的java应用程序应有一个main方法,且格式固定,但不一定在public类中。

2. package语句只能有一个且放在程序的第一行。

3. 整数在内存中式按照其补码来存储的,正数的补码=原码,负数的补码=原码取反加1 ,char无符号位(0~65535)

4. 强制转换可能有数据和精度的丢失,也有可能改变数据的正负性。自动转换也会有数据和精度的丢失,如:

    int-->float , long-->float , long-->double

5.不要在程序中比较两个浮点数相等,应该用他们差的绝对值是否小于一个足够小的数来判断。

6. 给变量赋值时,所赋值范围应小于变量范围,默认整数是int型,小数是double型

7. 属性没括号,方法有括号,构造无返回值。

8. 创建实例对象的内存图:

     内存----->栈内存(后进先出,先进后出)

           ----->堆内存

           ----->代码段(方法区)

           ----->寄存器

           ----->池(常驻内存,可申请但不可回收)

     实例:Emp   e    =     new    Emp();    e.getSall(500);

     执行顺序:(2)      (3)             (1)                      (4)

          栈里先放Emp的引用e,然后是500    堆里放Emp的实例对象,除了实例变量外 堆里的静态池存放了类变量也就是静态变量                         

                                                                                                                                                           

9.操作符:移位运算符:>>右移 正数补0 负数补1   >>>无符号右移 全补0  <<左移 都补0 

             i) 对于int和小于int型的以32为基准:

                          7>>-30<=> 7>>2(移动负数位相当于负数+32的倍数)

                          7>>34 <=>7>>2 (大于32的相当于n%32 正好移动32或0位则不变)

            ii) 对于long型基准是64

    赋值运算:byte i= 5; i+=1;正确  因为赋值运算自动转换成范围大的类型;

                   byte i = 5;i=i+1;错误  要强制类型转换。。因为小于int的整数运算,先转化为int后在运算。

    位运算:& |  ^ ~ (都真才真,都假才假,不同才真,相反);

    三目运算符: a>b?5.0:3  =>输出3.0            

                        a>b?5.0:"ok" =>1.5不会输出ok 1.6可以

                     说明:若结果类型不同尽量转成相同的

    &与&&的区别:1)&是位与也是逻辑与2)&&是短路与,效率高

    优先权:++ -- + - ! ~ * / % + - << >> >>> < > <= >= instanceof 

                 == != & ^ | && || ?:  赋值

 

 10. switch(temp)   temp可选类型(int char 枚举)

       如果进入到某个没有break的分支,  则继续向下执行,而不验证case,直到遇到break或到句尾

 11. 死循环后不能放任何语句。

 12. int i = 4;

       for(int j=0;j<10;j++){

             i= i++;

       }循环完i的结果是4.。。。先i++后i=5 之后又把4赋值给i这样循环n次i的值也是不变的

 13. if else多分支与switch循环的条件应该是"小范围"放在上面。

 14. 随即数 double  a = Math.random();   [0,1)随即一个数

 15. 小技巧:for(int i=0;i<100;i++){

                           i--;返回上层循环

                   }

 16.交换a,b的值 不用中间变量 a = a+b; b = a-b; a = a-b;

 17.数组:定义  double[]  d = new double[3]

                       int[] a = {1,2,3}   return 数组的时候不能用这种初始化。

                       int[] a = new int[]{1,2,3}  长度a.length

      sun提供的操作数组的类Arrays  :public class Arrays extends Object

      1)复制数组:System.arraycopy(a1,i,a2,j,k);从a1的i位置开始复制到a2的j位置开始 复制k个数据

      2)排序数组:基本数据类型:Arrays.sort(a);    

                        字符串:Arrays.sort(s);由于String类实现了comparable接口 故可直接用sort方法

                                    其他引用类型必须实现comparable才能用sort比较

                        引用类型:Arrays.sort(Object[] a); 根据元素自然顺序,升序排列

                                       sort(Object[] a,int from(包括),int to(不包括));若from==to则排序范围空

                                       sort(T[] t,Comparator c)根据指定比较器(实现Comparator)产生的顺序进行排序

      3)做固定大小的数组:List  Arrays.asList(a);

      4)搜索数组:搜索数组之前必须对数组进行排序

                       int Arrays.binarySearch(type[] a, type key)

                       int Arrays.binarySearch(Object[] a, Object key)

                       int Arrays.binarySearch(T[] t, T key, Comparator c)

      5)相等:Arrays.equals(type[] a1,type[] a2) 两个type型数组对应的值都相等才返回true;

      6)填充数组:Arrays.fill(type[] a1, type a2) 把type型值a2赋给数组a1的每个元素

                        Arrays.fill(type[] a1,int from,int to,type a2)

      7)Arrays.toString(type[] a) 对数组中每个元素String.valueOf(a[i])然后放入[]中用","隔开,如[1,2,3]

         对于引用类型与Arrays.asList(a).toString()等价

 18.String

    public final class String extends Object implements Serializable,Comparable<String>,CharSequence

    字符串是常量,他们的值在创建之后不能被改变。字符串缓冲区支持可变的字符串。

    因为String对象是不可改变的,所以可以共享它们。

    注:String str = "abc"; 等价于char[] data = {'a','b','c'};String str = new String(data);

   构造:1)bytes[]-->String:  i) String(byte[] bytes)/String(byte[] bytes,int offset,int length)

                                                 例如:byte[] b = {1,2,3} new String(b)之后的结果不是"123"据我推测是由于该构造方法

                                                         是根据byte数组中元素与Ascii码做匹配,匹配出的字符依次连接在一起组成字符串

                                                         如;“啊”的Ascii码值是-80,-95

                                                         byte[] b = {-80,-95,-80,-95} new String(b);结果是"啊啊

                                               ii)String(byte[] bytes,String charsetName) 构造一个新的 String,方法是使用指定的字符集解码指定的字节数组

           2)char[]-->String:    String(char[] value)  分配一个新的 String,它表示当前字符数组参数中包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

                                               例子:char[] c = {'1','2','12'};这是错误的,字符里没有'12'只有'0'到'9'

                                                        char[] c = {97} new String(c)  结果是a  与byte一样,但char都是正数(0,65535)

           3)String-->String:     String(String original) 新创建的字符串是该参数字符串的一个副本。

           4)StringBuffer-->String:  String(StringBuffer buffer)  分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。此字符串缓冲区的内容已被复制,后续对它的修改不会影响新创建的字符串。

           5)StringBuilder-->String:   String(StringBuilder builder)分配一个新的字符串,它包含当前包含在字符串生成器参数中的字符序列。此字符串生成器的内容已被复制,后续对此字符串生成器的修改不会影响新创建的字符串。

    方法: charAt(int index) 返回指定索引处的char值

               compareTo(String str) 按字典顺序比较两个字符串

               compareToIgnoreCase(String str) 不考虑大小写

               concat(String str) 将指定字符串连接到此字符串的结尾。

               contentEquals(CharSequence cs)
                当且仅当此 String 表示与指定序列相同的 char 值时,才返回 true

    static  copyValueOf(char[] data)
                 返回指定数组中表示该字符序列的字符串。

               endsWith(String suffix) 
                此字符串是否以指定的后缀结束。

               equals(Object anObject)
                 比较此字符串与指定的对象。

               equalsIgnoreCase(String anotherString)
                  将此 String 与另一个 String 进行比较,不考虑大小写。

              getBytes()
                使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

              getBytes(String charsetName)
                使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

            用字符串里的值填充某字符数组

             getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
                 将字符从此字符串复制到目标字符数组。

             indexOf(int ch)
                 返回指定字符在此字符串中第一次出现处的索引。

             indexOf(int ch, int fromIndex)
                 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。

             indexOf(String str) 另个方法同上
                 返回第一次出现的指定子字符串在此字符串中的索引。

            lastIndexOf(int ch)   另个方法同上                                       
                返回最后一次出现的指定字符在此字符串中的索引。

            lastIndexOf(String str) 另个方法同上
                返回在此字符串中最右边出现的指定子字符串的索引。

            length()
               返回此字符串的长度。

            matches(String regex)
                通知此字符串是否匹配给定的正则表达式。

            replace(char oldChar, char newChar)
              返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。

            replace(CharSequence target, CharSequence replacement)
                使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串。

           split(String regex)
              根据给定的正则表达式的匹配来拆分此字符串。

          split(String regex, int limit)  limit限制了数字的长度,如果为负数则任意长度,为0也任意长度但末尾的空字符串被丢掉

          startsWith(String prefix)
             测试此字符串是否以指定的前缀开始。

          startsWith(String prefix, int toffset)
              测试此字符串是否以指定前缀开始,该前缀以指定索引开始。

          subSequence(int beginIndex, int endIndex)
               返回一个新的字符序列,它是此序列的一个子序列。

          substring(int beginIndex)
               返回一个新的字符串,它是此字符串的一个子字符串。

          substring(int beginIndex, int endIndex)
                返回一个新字符串,它是此字符串的一个子字符串。

          toCharArray()
              将此字符串转换为一个新的字符数组。

         toLowerCase() /toUpperCase()
             使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

         trim()
             返回字符串的副本,忽略前导空白和尾部空白。

  static valueOf(type t)  (type是基本类型,这里不包括short和byte类型) 返回t的字符串形式

  static  valueOf(char[] data)
                返回 char 数组参数的字符串表示形式。

  static  valueOf(Object obj)
              返回 Object 参数的字符串表示形式。

分享到:
评论

相关推荐

    corejava--基础教程

    《CoreJava--基础教程》是一本专注于Java编程语言基础知识的权威指南。这本书涵盖了从Java语言的基本语法、数据类型到类和对象,再到异常处理、集合框架等核心概念,旨在为初学者提供一个全面且深入的学习路径。以下...

    core-Java-volume1--example-code.rar_core java 1 code

    这个压缩包文件"core-Java-volume1--example-code.rar"包含了书中所有卷一的示例代码,为读者提供了实践编程概念的宝贵资源。下面,我们将详细探讨这些示例代码涵盖的知识点。 首先,Java基础语法是任何学习Java的...

    CoreJava串讲---超好!

    在Java编程领域,CoreJava是学习的基础,它涵盖了Java语言的核心概念和技术,包括语法、数据类型、控制结构、类与对象、集合框架等重要主题。这次的串讲内容将深入探讨这些基础知识,帮助开发者构建扎实的Java根基。...

    Core Java Volume I - Fundamentals

    本书的第10版提供了全面且详细的Java编程知识,涵盖了从基本语法到高级特性的广泛内容。以下是该书的一些关键知识点: 1. **Java简介**:Java是一种跨平台的面向对象的编程语言,由Sun Microsystems(现已被Oracle...

    Core-Java-1.-Volume-I---Fundamentals.rar_Fundamentals

    Volume I - Fundamentals》是一本系统学习Java编程的优秀教程,它不仅介绍了Java的基本语法,还深入探讨了面向对象编程的核心概念,为读者构建坚实的Java编程基础。通过阅读和实践书中的例子,读者将能够熟练掌握...

    java-core-test

    在Java编程领域,"Java核心"是指Java语言的基础部分,包括语法、数据类型、控制结构、类与对象、异常处理、集合框架等关键概念。本资料着重于这些基础知识的复习,旨在帮助开发者巩固和提升Java编程技能。 1. **...

    JDK14-java-core-libraries-developer-guide.pdf

    Java Core Libraries 是 Java 语言的核心类库,提供了基本的数据类型、字符串处理、数学运算、输入/输出操作、网络通信等功能。Java Core Libraries 是 Java 语言的基础部分,提供了广泛的应用编程接口(API),使得...

    Core Java(Volume-I&II;--Fundamentals 9th Edition).rar

    2. **基础语法**:讲解Java的基本语法,如变量、数据类型、运算符、控制流语句(if-else、switch、循环)、方法和类的定义。 3. **面向对象编程**:深入探讨面向对象的基本概念,如封装、继承、多态性,以及抽象类...

    java\CoreJava笔记\CoreJAVA_day01

    CoreJava是Java的基础,涵盖了Java Standard Edition (J2SE)的主要内容,包括基本语法、面向对象编程(OO)原则、核心类库的使用等。在学习CoreJava时,我们需要掌握以下几个关键知识点: 1. **编程思想**: - ...

    CoreJava代码--超好!

    1. **数据类型**:Java分为两种数据类型,基本类型(如int、char、boolean)和引用类型(如类、接口、数组)。理解每种类型的作用和用法是编程的基础。 2. **控制结构**:包括条件语句(if-else、switch-case)、...

    corejava,java核心编程

    【标签】:“corejava” 在计算机编程领域,Core Java是指Java的核心部分,它是Java技术的基础,涵盖了Java语言的基础语法、面向对象编程概念、图形用户界面(GUI)开发以及网络编程等方面。以下是对这些知识点的...

    corejava12示例代码

    《CoreJava12示例代码》是一份针对Java编程语言深度学习的重要资源,主要涵盖了CoreJava12版本中的核心概念和特性。这份压缩包文件包含了丰富的示例代码,旨在帮助开发者深入理解Java语言的各个方面,提升编程技能。...

    core-java电子书

    1. **Java语言基础**:包括Java语法、数据类型、变量、运算符、流程控制(如if语句、switch语句、循环)、方法定义与调用、异常处理等基本概念,这些都是Java编程的基石。 2. **类与对象**:深入理解面向对象编程...

    corejava学习笔记

    1. **Java语法与基本规则** - Java语法严谨,包括变量声明、数据类型、运算符、流程控制等。学习时要熟练掌握这些基本元素,同时注意编程规范,如包名全小写,类名和接口名首字母大写,方法名和变量名除首字母外...

    freemarker itext core-renderer

    这些组件的使用需要一定的编程技能,特别是对Java、FreeMarker语法和PDF生成的理解。同时,由于版本较旧,可能需要考虑升级到最新版本以获取更好的安全性和新特性。在实际项目中,还需要考虑兼容性问题,因为不同...

    core java1&2

    1. **Java语言基础**:介绍Java语法,变量、数据类型、运算符和控制流结构,如if语句、for循环和while循环。 2. **面向对象编程**:深入讲解类、对象、封装、继承、多态等核心概念,以及接口和抽象类的使用。 3. *...

    Core Java( Java 核心) PDF 教材

    1. **Java语言基础**:书中首先会介绍Java语言的基础,包括如何安装开发环境、编写第一个Hello World程序,以及Java语法的基本要素,如变量、数据类型、运算符、控制结构(if语句、switch、for、while循环)。...

    corejava(source)

    CoreJava的源码包含了Java语言的基础语法和核心概念,如类、对象、封装、继承、多态等。在v1和v2两个版本中,我们可以看到这些基本概念的实现细节,这对于巩固Java基础知识非常有帮助。例如,可以深入理解构造函数的...

    Core Java.JAVA核心技术(中文版)

    《Core Java.JAVA核心技术(中文版)》是学习Java编程的重要参考资料,主要涵盖了Java语言的基础以及进阶知识。这本书深入浅出地讲解了Java的核心概念和技术,为读者提供了全面而细致的学习路径。以下是对该书内容的...

    CoreJava CoreJava

    《CoreJava CoreJava CoreJava 基础学习》 在Java编程领域,"CoreJava"通常指的是Java语言的核心部分,不涉及高级特性如Java EE(企业版)或Android开发。这个概念涵盖了Java语言的基础语法、类库以及面向对象编程...

Global site tag (gtag.js) - Google Analytics