zoukankan      html  css  js  c++  java
  • java核心技术 要点笔记1

    第1章

    1、java特性

    简单性,java语法是一个C++语法的纯净版本。

    面向对象,java将重点放在数据和对象的接口上。java与C++的主要不同点在于多继承,在java中实现多继承的机制是采用接口以及元类模型。

    网络技能,健壮性,安全性,体系结构中立,

    可移植性,java的基本类型的大小以及有关算法都做了明确的规定,java规范没有依赖具体实现。例如:java中的int类型永远是32位的整数,在其他语言中就不一定。其他语言只有一种规定就是int类型的大小不能低于shortint,不能高于long int。java中的字符串使用标准的Unicode格式存储。

    解释性,高性能,多线程,动态性。

    2、java发展史

    java以C++为基础。

    java版本发展过程

    版本  年份  语言新特性  类与接口的数量

    1.0  1996  语言本身     211

    1.1  1997  内部类        477

    1.2  1998  无              1524

    1.3   2000 无              1840

    1.4  2004   断言           2723

    5.0  2004  泛型 for each 可变元参数 自动打包  元数据 枚举  静态导入    3279

    6     2006  无             3777

    第3章:基本程序设计结构

    1.简单的应用程序

    1 public class FirstSample
    2 {
    3     public static vod main(String[] args)
    4     {
    5         System.out.println("Hello World!")
    6     }
    7 }

     类名大写字母开头,若名字由多个单词构成,每个单词第一个字母都要大写;

    源代码电网文件名必须与公共类的类名相同,并用java做拓展名;

    java虚拟机从指定类的main方法开始执行;

    main方法必须声明为public,必须是静态的;

    2.注释

    行注释:   //

    段注释:    /*                  */

    生成文档:      /**              **/

    3.数据类型

    java是强类型语言,即必须为每一个变量声明一种类型;

    java一共有8种基本类型:4种整型   2 种浮点型   1种字符类型char   1种bool类型;

    java中所有数值类型所占用的字节数与平台无关;

    4.变量

    声明一个变量后,必须用赋值语句对变量进行显式初始化;

    可以将声明放在代码中的任意位置;

    利用关键字final指示常量, static final指示类常量,const是java保留字但并未使用;

    5.运算符

    6.字符串

    String类包含在java.lang包中,这个包会在Java启动的时候自动import,所以可以当做一个内置类(built-in class),不需要显式的使用import引入String类;

    String类是唯一一个不需要new关键字来创建对象的类;

    java没有内置的字符串类型,而是在标准java类库中提供预定义类String,即每个字符串都是String类的一个实例;

    不能修改字符串中的字符;

    不能使用==运算符检测两个字符串是否相等,只能确定是否在一个位置上,只有字符串常量是共享的,而+或substring等操作生成的并不是共享的;

    检查空串: if(str.length == 0) 或 if (str.equals("")) , 检测nil串:  if(str == null)

      1 import java.util.Arrays;
      2 class  StringDemo
      3 {
      4     public static void main(String [] args)
      5     {
      6         String name1="hello world";
      7         String name2="hello world";
      8         String name3=new String("hello world");
      9         String name4=new String("hello world");
     10         System.out.println( name1==name2 );//true
     11         System.out.println( name3==name4 );//false
     12             
     13         System.out.println("字符串的查找----------------------------------------");
     14             
     15         System.out.println("字符串的使用!String");
     16         System.out.println(name1.length()+":字符串的长度");
     17         System.out.println(name1.charAt(3)+":返回指定下标的字符");
     18         System.out.println(name1.indexOf('o')+":通过字符找到字符的下标");
     19         System.out.println(name1.lastIndexOf('o')+":返回最后一个字符的下标");
     20             
     21             
     22         System.out.println("字符串的判断-----------------------------------");
     23             
     24         String s="";
     25         System.out.println(s.isEmpty());//true  长度为0返回true 否则返回false
     26         String fileName="Demo1.java";
     27         System.out.println(fileName.endsWith(".java"));//判断某个是否已某个字符串结尾
     28         System.out.println(fileName.contains("java"));//判断是否包含某个字符串
     29         System.out.println(fileName.equals("java"));//false
     30         System.out.println("java".equals("java"));//true
     31         System.out.println("java".equalsIgnoreCase("JaVa"));//true忽略大小写比较
     32             
     33             
     34         System.out.println("字符串转换---------------------------------------");
     35         String str=new String(new char[]{'a','b','c','d','e'});
     36         System.out.println(str);
     37             
     38         char[] charArr=str.toCharArray();//字符串装换成字符数组
     39         System.out.println(Arrays.toString(charArr));
     40             
     41         String strBy=new String(new byte[]{97,98,99});
     42         System.out.println(strBy);
     43         byte [] byteArr=strBy.getBytes();
     44         System.out.println(Arrays.toString(byteArr));//字符串转换成byte数组
     45             
     46         System.out.println("字符串替换---------------------------------------");
     47             
     48         String strRe="hello world !";
     49         System.out.println(strRe.replace("world","java"));//都会重新创建一个对象,原来的 对象不会改变
     50             
     51         System.out.println("字符串切割---------------------------------------");
     52         String strSpl="hello world !";
     53         String[] strArraySpl=strSpl.split(" ");
     54         System.out.println(Arrays.toString(strArraySpl));
     55             
     56         System.out.println("字符串子串------------------按照指定顺序求字符串的一部分---------------------");
     57         String strSub="hello world !";
     58         System.out.println(strSub.substring(3));//也是产生新的字符串
     59         System.out.println(strSub.substring(3,9));//假如超过了字符串的长度,那么用"空"表示
     60         //System.out.println(strSub.subString(6,4))//运行时报错可以大于等于前面一个下标
     61             
     62         System.out.println("字符串大小转换---------------------------------------");
     63         String strUp="HELLO world";
     64         System.out.println(strUp.toUpperCase());
     65         System.out.println(strUp.toLowerCase());
     66             
     67         System.out.println("字符串去除两边空格---------------------------------------");
     68         String strTr="  hello world !  ";
     69         System.out.println(strTr.trim());
     70             
     71         //trim的实现  数组里面的length是属性不是方法
     72         String strTrm="  hello world !    ";
     73         char[] charTr=strTrm.toCharArray();
     74         int start=0;
     75         int end=charTr.length;
     76         for(int i=0;i<charTr.length;i++){
     77             if(charTr[i]==' ')
     78                 start++;
     79             else
     80                 break;
     81         }
     82         for(int i=charTr.length-1;i>=0;i--)
     83         {
     84             if(charTr[i]==' ')
     85                 end--;
     86             else
     87                 break;
     88         }
     89         System.out.println(strTr.substring(start,end+1));
     90     }
     91         
     92     /* string 对象的创建: String name1="my";是放在内存常量区中
     93         方式1: string对象是放在常量池中的一块内存地址
     94             放置之前先检查该区域是否已经放有该常量,如果有,直接返回地址
     95             
     96         方式2:String name3=new String("my");
     97             这个是放在堆内存里面的,创建出来的对象是不相等的,因为内存地址不一样
     98                 
     99                 
    100         String特点:
    101             1、由于字符串底层是由一个字符数组来实现的,所以String是不可变的
    102             2、String 重写了Object的hashCode方法
    103                 == 表示比较的是地址
    104             
    105         String 常用的方法:
    106                 
    107             
    108     */
    109 }
    String demo

    7.输入输出

    数据流: http://blog.csdn.net/hguisu/article/details/7418161

    读取输入:Scanner类 (java.util.Scanner)

     1 public class TestScanner { 
     2         public static void main(String[] args) { 
     3                 Scanner s = new Scanner(System.in); 
     4                 System.out.println("请输入字符串:"); 
     5                 while (true) { 
     6                         String line = s.nextLine(); 
     7                         if (line.equals("exit")) break; 
     8                         System.out.println(">>>" + line); 
     9                 } 
    10         } 
    11 }

    格式化输出:

    文件输入与输出:

      java.utiil.Scanner   Scanner(File f)  构造一个从给定文件读取数据的Scanner;

                   Scanner(String  data) 构造一个从给定字符串读取数据的Scanner;

      java.io.PrintWriter  PrintWriter(String filename) 构造一个将数据写入文件的PrintWriter,文件名由参数指定

    8.控制流

    快作用域: 一个块可以嵌套在另一个块中,但不能在嵌套的块中声明同名的变量;

    public static void main(String[] args)
    {
        int n;
        {
            int k;
            int n;  //ERROR, can't redefine n in inner block
        }
    }

    条件语句:

    循环语句:while    ,  do.....while   

    确定循环:for 若在for内部定义一个变量,这个变量不能在循环体外使用

    for(int i=1; i<=10;i++)
    {
    ...
    }
    //i  no longer defined here
    
    
    int i
    for(i=1;i<=10;i+=)
    {
    ...
    }
    
    //i is still defined here

    多重选择: switch语句

    中断控制流程语句: 带标签的break语句

    9.大数值

    java.math包提供了类: BigInteger  和 BigDecimal,实现任意精度的整型运算和浮点型运算

    10.数组

    创建数组时,所有元素都初始化为0,bool类型为false,对象数组的元素为null,表示还未存放任何元素;

    for each循环:   for(variable:collection) statement   

    数组拷贝:数组变量拷贝给另一个变量,此时两个变量将引用同一个数组;

    命令行参数: java Message -h  world ,则 args[0]=  -h, args[1]= world;

    多维数组:

  • 相关阅读:
    ISAPI Extension和ISAPI Filter
    Windows Debugging之二
    Windows Debugging之三
    举例一些可执行文件的后缀名
    Windows Debugging 之一
    [转]C# 日期函数
    在DataGridView中的CellEndEdit事件中删除当前行报错
    一个奇怪的问题
    [转载]如何发送和接收 Windows Phone 的 Toast 通知
    【转载】如何播放 Windows Phone 的后台音频
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/4936617.html
Copyright © 2011-2022 走看看