JAVA笔记(基本结构)

数据类型:
整型:用于表示没有小数部分的数值,允许是负数。

int  4字节 
short 2字节
long 8字节
byte 1字节

通常情况,int最常用,若表示星球上的居住人数,需使用long类型,byte和short类型主要用于特定的应用场合例如,底层的文件处理或控制占用存储空间量的大数组。

浮点类型:用于表示有小数部分的数值,JAVA中有两种浮点类型

float 4字节
double 8字节		

double表示这种类型的数值精度是float类型的两倍,绝大部分应用程序都采用double类型,很多情况下,float类型的精度很难满足需求,实际上只有很少的情况适合使用float类型,例如需要单精度数据的库,或者需要存储大量数据。

char类型:表单个字符,char类型的字面量值要用单引号括起来。例:“A”是编码值为65所对应的字符常量。它与“A ”不同,“A”是包含一个字符A的字符串。char的值可表示16进制,范围从\u0000到\Uffff。

\b 表示退格
\t 表示制表
\n 表示换行
\r 表示回车
“+” 表示空串
注:\uxxxx 会替换为一个换行符

变量
每个变量都有一个类型,再声明变量时,变量的类型位于变量名之前。
例:
double salary;
int vacationDays;
long earthPopulation;
boolean done;
变量名的长度基本上没有限制。64kb

变量初始化:

int vacationDays;
vacationDays=12;
也可将变量的声明和初始化放在同一行如:
int vacationDays = 12;
最后可将声明放在代码任何位置如:
double salary = 65000.0;
System.out.println(salary);
int vacatonDays = 12;

常量:
利用关键字final指示常量如:

public class Constants
{
  public static void main(String[]args) 
  {
  final double CM_PER_INCH = 2.54;
  double paperWidth = 8.5;
  double paperHeight = 11;
  System.out.println("Paper size in centimeters:"
  paperWidth*CM_PER_INCH + "by"+ paperHeight * CM_PER_INCH);
     }
   }
   注:关键字final表示这个变量只能被赋值一次,一旦被赋值后,就不能再改。1.final修饰→常量→名称全大写
   

若希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。如:

public static final double CM_PER_INCH=2.54;
public static void main(String[]args)
{
   double paperWidth = 8.5;
   double paperHeight = 11;
   System.out.println("Paper size in centimeters:"
     + paperWidth * CM_PER_INCH +" by" +paperHeight* CM_PER_INCH);
     }
 类常量的定义位于main方法的外部,因此一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。
 注:2.使用static修饰→多个方法公用
        3.使用public修饰→其他类也可用

运算符:
注:整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。

结合赋值和运算符:

x +=4;等价于x= x+4;

字符串:Unicode字符序列,java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然叫做String。每个用双引号括起来的字符串都是String类的一个实例:
String = “”;
String greeting = “Hello”;

子串:String类的substring方法可以从一个较大的字符串提取出一个子串。例如:
String greeting = “Hello”;
String s= greeting.substring(0,3);

空串与NULL串:
空串“”是长度为0的字符串,可以调用以下代码检查一个字符串是否为空:

if(str.length()==0)
或
if(str.equals(""))
空串是一个java对象,有自己的串长度(0)和内容(空),String变量还可以存放一个特殊的值,名为null。检查一个字符串是否为null如:
if(str==null)

码点与代码单元:
Java字符串由char值序列组成。char数据类型十一个采用UTF-16编码表示Unicode码点的代码单元,大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。

构建字符串:有时需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。采用字符串连接的方式达到此目的效率比较低。每次连接字符串,都会构建一个新的String对象,既耗时,又浪费空间。

格式化输出:
在printf中可使用多个参数,如:
System.out.printf("hello,%s.next year, you'll be %d",name,age);
可使用静态的String.format方法创建一个格式化的字符串,而不打印输出:

String message = String.format("heello,%s.next year,you'll be %d",name,age);

注:如果需要多次对日期操作才能实现对每一部分进行格式化的目的就太笨拙了,为此可以采用一个格式化的字符串指出要被格式化的参数索引。索引必须紧跟%后面并以$终止。如:

System.out.printf("%1$s %2$tB %2$te,%2$tY","Due date:",new Date());

文件输入与输出:
要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下:

Scanner in= new Scanner(Paths.get("myfile.txt"),"UTF-8");

要想写入文件,就需要构造一个PrintWriter对象,如:

PrintWriter out = new PrintWriter("myfile.txt","UTF-8");

如果文件不存在,创建该文件。

控制流程:
1.块作用域:快(即复合语句)是指由一对大括号括起来的若干条简单的java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。下面就是在main方法中嵌套另一个语句块的实例:

public static void main(String[] args)
{
 int n;
 '''
  {
    int k;
    '''
   }
}   

但是,不能在嵌套的两个块中声明同名的变量。

2.条件语句
在JAVA中,条件语句的格式为:if(condition) statement这里的条件必须用括号括起来。
**else子句与最邻近的if构成一组。**如:

if(x<=0) if(x==0) sign = 0 ; else sign = 1;等价于if(x<=0) {if(x==0) sign=0;else sign =1 ;}

3.循环:当条件为true时,while循环执行一条语句。一般格式为:while(condition) statement

4.中断控制流程语句:break,标签必须放在希望跳出的最外层循环之前,并且必须紧跟一个冒号。

Scanner in = new Scanner(System.in);
int  n ;
read_data:
while (...)
{
  for(...)
  {
   System.out.print("Enter a number>=0:");
   n= in.nextInt();
   if(n<0)
   break read_data;
   ...
   }
 }

还有一个continue语句与break语句一样,它将中断正常的控制流程。continue语句将控制转移到最内层循环的首部。如:

Scanner in = new Scanner(System.in);
while (sum<goal)
{
 System.out.print("enter a number");
 n = in.nextInt();
 if(n<0) continue;
 sum+=n;
 }

5.大数值:若基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用类:BigInteger和BigDecimal。前者是实现了任意精度的整数运算,后者实现了任意精度的浮点数运算。
使用静态的valueOf方法可以将普通的数值转换为大数值:

BigInteger a = BigInteger.valueOf(100);

**注:**不能使用算术运算符处理大数值,需使用大数值类中的add和multiply方法。

BigInteger c = a.add(b);
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2)));// d=c*(b+2)

6.数组
数组是一种数据结构,用来存储用一类型值的集合。通过一个整型下标可以访问数组中的每一个值。如:如果a是一个整型数组,a[i]就是数组中下标为i的整数。

声明数组a:int[] a; 或 int a[];
创建数组a:int[] a =new int[100];//里面包含100个整数的数组(0-99)
使用一个循环:int[] a = new int[100];
                         for (int i =0; i< 100;i++)
                            a[i] = i;

注: 创建一个数字数组时,所有元素都初始化为0.boolean数组的元素会初始化为false。对象数组的元素则初始化为一个特殊值null,这表示这些元素未存放任何对象。
如;String[] names = new String[10];会创建10个字符串,但每个都是null
要想获得数组中的元素个数,可以使用array.length。如:

for (int i = 0;i<a.length;i++)  
 System.out.peintln(a[i]);

若想简单打印数组中的所有值,即利用Arrays类的toString方法,调用Arrarys.toString(a),返回一个包含数组元素的字符串。

数组初始化及匿名数组
在java中提供了一种创建数组对象并同时赋予初始值的简化书写形式。如:

int[] smallPrimes = {2,3,5,7,11,13};

数组拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组:int[]luckyNumbers = smallPrimes; luckyNumbers[5] = 12;
若希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法:
int[] copiedLuckyNumbers = Arrays.copyof(luckyNumbers,2*luckyNumbers.length);
第二个参数是新数组的长度,这个方法通常用来增加数组的大小:

luckyNumbers = Arrays.copeOf(luckyNumbers,2*luckyNumbers.length);

如果数组元素是数值型,那么多余的元素将被赋值为0;如果数组元素是布尔型,则将赋值为false。相反,若长度小于原始数组的长度,则只拷贝最前面的数据元素。

数组排序
若想对数值型数组进行排序,可以使用Arrays类中的sort方法:

int[] a = new int[10000];
...
Arrays.sort(a)

多维数组
多维数组将使用多个下标访问数组元素,它适用于表示表格或更加复杂的排列形式。可以使用一个二维数组存储这些信息,这个数组被命名为balances。

声明一个二维数组:double [][] balances;
初始化:balances = new double[NYEARS][NRATES];

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值