corejava学习笔记(一)

来源:互联网 发布:黑马java视频 编辑:程序博客网 时间:2024/04/29 13:02

java是一个完整的平台,有很大的库函数,包含很多可重用的代码,和一个可执行环境,该环境
可以提供安全,移植,自动碎片收集等的服务。
java白皮书:简单,可移植,面向对象,易理解,分布的,高性能的,鹭邦的
多线程的,安全的,动态的,体系结构不固定的。

运行在网页上的java程序成为applets.当用户下载一个applet,它就像嵌入在网页中的一张图片
我们可以用applets为网页增加按钮和输入区域


java是大小写敏感的。

public class FirstSample

public是程序的其他部分对该部分的访问级别,该源文件的名字应该是FirstSample.java,注意大小写
java中的所有程序都是在一个class中的,可以把class认为是一个程序逻辑的容器,用来定义应用程序的
行为。
java程序必须含有一个main方法,任何程序都是从main开始执行的。
注释与c++中的一样。
java是强类型语言,每个变量必须有一个类型,
整形类型有四种(int,short,long,byte);
int 4个字节;short 2个字节;long 8个字节,byte  1个字节,最常用的是int
整形的长度不依赖于运行java代码的机器。可移植,因为java程序在所有的机器上运行结果必须是相同的
因此,它的不同类型的范围是固定的。而在c和c++中,各种机器平台对类型范围的定义是不同的。
另外,java没有unsigned类型


浮点类型有两种(float,double),float 4个字节,double  8个字节,最常用的是double


java没有内置的string类型,而在标准库中有一个预定义的String类。用引号括起来的序列都是String类
的一个实例。

String greeting = "hello";
int n = greeting.length()//is 5,返回的是代码单元的个数
int cpCount = greeting.codePointCount(0,greeting.length());//返回代码点的数目

char first = greeting.charAt(0);//返回位置0处的代码
char last = greeting.charAt(4);//返回位置4处的代码

int index = greeting.offsetByCodePoints(0,i);//得到第i个代码点
int cp = greeting.codePointAt(index);

int cp = sentence.codePointAt(i);
if(Character.isSupplementaryCodePoint(cp))
    i+=2;
else i++;

codePointAt()可以告诉这个代码单元是辅助字符的前半部分还是后半部分,无论如何返回正确的结果

i--;
int cp = sentence.codePointAt(i);
if(Character.isSupplementaryCodePoint(cp))
  i--;

子字符串
   String greeting = "hello";
   String s = greeting.SubString(0,3);

  greeting = greeting.Substring(0,3) +"p!";

 字符串像是在一个公共池中,字符串变量指向池中的一个位置。如果赋值字符串变量,则原来的
变量和拷贝指向同一个位置

System.out.println("the answer is"+answer);

判断两个字符串是否相等
s.equals(t);
不要用==判断两字符串是否相等。它只是用来判断两字符串是否被存储在同一位置


输入输出:
System.out.println();
输入:首先创建一个与标准输入绑定的scanner;
Scanner in = new Scanner(System.in);
现在就可以用Scanner类的不同方法读输入的内容。
System.out.print("what is your name?");
String name = in.nextLine();

String firstName = in.next();

System.out.print("How old are you?");
int age = in.nextInt();

int age = in.nextDouble();

在java中,内嵌的块内,对变量的定义也不能跟外围块中变量的名字相同

new动态分配的数组也可以被初始化
new int[] {12,12,33,45,};

数组变量可以拷贝到另一个数组变量,但是这两个变量指的是同一个数组
System.arraycopy(from,fromIndex,to,toIndex,count);

输入模式,先构造一个与标准输入流System.in相关联的Scanner
   Scanner in = new Scanner(System.in);
  现在就可以用scanner类的方法来读输入内容
  如:读输入的一行
   System.out.print("What is your name?");
   String name = in.nextLine();
  读一个单独的单词String firstName = in.next();
  读一个整数int age = in.nextInt();
            double high = in.nextDouble();
需要加上一行import java.util.*;因为Scanner类是在java包java.util中定义的。如果要用的类不是
在java.lang中定义的时候,需要在程序前面加上import指示,类似于c++语言中的#include

输出模式:
System.out.print()与System.out.println()的区别是输出完成后不换行。
用printf()可以进行格式化输出,可以带多个参数。
可以用static String.format方法来创建一个格式化的字符串,而不输出
String message = String.format("Hello,%s.Next yeat,you'll be %d",name,age);
控制流与c++相同,有几个例外:没有goto语句。在嵌套定义中,不允许重名,在java中没有名字空间
的概念。


big number是用来处理任意长的数字序列的。有BigInterger和BigDecimal两个类,BigInterger用来
实现任意精度的整值的算术运算,BigDecimal实现任意精度的浮点数的算术运算。
可以用valueOf()方法把一个一般的数变成大数
BigInterger a = BigInter.valueOf(100);
但是对于大数不能用操作符运算,只能用相应的方法对其进行操作。因为java中没有操作符重载

数组的定义 int[] a;
int[] a = new int[100];数组一旦建立,就不能改变它的大小,如果需要经常改变 ,则可以用list
foreach 循环
  for(variable:collection)statement
  for(int element:a)
     System.out.println(element);//对a中的每个element.遍历的是每个变量,而不是索引值
我们可以把一个数组变量拷贝到另一个,但两个变量指向的是同一个数组
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12;//smallPrimes【5】也是12;

如果要进行深拷贝,需要用arraycopy()方法
    System.arraycopy(from,fromIndex,to,toIndex,count); 目标数组必须有足够的空间盛放

 

 

 

 

 

 


原创粉丝点击