Java自学笔记(第二天)

Java语言基础组成:

(1)关键字:被赋予特殊含义的单词,main不是关键字

(2)标示符:程序中自定义的一些名称,自定义名称,由26个字母大小写,数字0-9,_$组成,数字不可以开头,不可以使用关键字,Java中严格区分大小写,在起名字时,为了提高阅读性,要尽量有意义。包名,所有字母都小写。类名和接口名,所有单词的首字母大写。变量名和函数名,第一个单词首字母小写,第二个单词开始每个单词首字母大写。常量名,所有字母都大写。

(3)注释:单行,多行,文档(Java特有)

(4)常量:常量表示不能改变的数值。Java整数的三种表现形式,十进制,八进制(0开头),十六进制(0x开头),八位二进制数表示一个字节byte (01101001),ASCII编码表,十进制和二进制之间的转换,二进制的负数就是正数取反+1

(5)变量:将不确定的数据进行存储,也就是在内存中开辟一个空间。注意变量名,不能重复。

(6)数据类型:基本数据类型:数值型:整数类型:(byte-1字节,short-2字节,int-4节,long-8节)

                   浮点类型:(float-4字节,double-8字节)

               字符型:(char-2字节)

               布尔型:(boolean-2个值-true-false)

        引用数据类型:类:(class)

               接口:(interface)

               数组:[]

      float x = 1.0f; float 型数值后面要加f。

      long y = 213123l;long 型数值后面要加小写L。

      整数类型默认是 int  浮点类型默认是 double

      字符型(char)可以做运算。

      byte x = 1;

      x = x + 1; --> x = (byte)(x+1);

      int y = 2134;

      y = y/1000*1000; 结果是???.

      

(7)运算符:+正号-负号+加-减*乘/除%取余数,(-1%5)是多少??(1%-5)是多少??  ++ 自加 --  自减   b=a++;和 b=++a 的区别

字符串相连接用连接符号(+):”aaa“+”bbb“

System.out.print(5+5); 运行结果是???

System.out.print(‘a’+5+5);运行结果是???

System.out.print("a"+5+5);运行结果是???

System.out.print(5+5+"a");运行结果是???

字符串数据和任何数据使用+号 都是相连接,最终都会变成字符串

int a ,b;
a=1;

b=++a;
System.out.print(a,b);运行结果是???

int a ,b;
a=1;

b=++a;
System.out.print(a+" "+b);运行结果是???

int a ,b;
a=1;

b=a++;
System.out.print(a+" "+b);运行结果是???

int a ,b;
a=1;

b=a=a+1;
System.out.print(a+" "+b);运行结果是???

转义字符 \ :通过\ 来转变后面字母或者符号的含义,例:\n 是换行的意思,\r 是回车键,\t 制表符。

System.out.print(“\”hello\“”);

System.out.print("\\hello\\");

System.out.print("\"hello\""+\t+"\\hello\\");报错

System.out.print("\"hello\""+"\t"+"\\heloo\\");正确

char ch =‘\‘; ch1=‘‘‘;

System.out.print(ch+ch1);报错

char ch = ‘\\‘;ch1 =‘\‘‘;

System.out.print(ch+ch1);字符作数学运算

赋值运算符:= += -= *= /= %= :x+=1 是 x=x+1 吗? 是 ++x 吗?是 x++ 吗?

例:int a=0,b=0; b=a+=1;

         b=a=a+1;

         b=++a;

         b=a++;   b  分别是多少??????

例:short s = 5;

  s = s+5;报错, + 号 和 = 号 分别 是一次加法运算和一次赋值运算,数据类型不匹配报错

  (整数 默认是 int 型,小数默认是double型)

  s+=5;正确,+= 号是一次赋值操作,把+=左右两边的和赋给左边

比较运算符:== ,!= ,<,>,<=,>=,instanceof,

逻辑运算符:用于连接boolean类型的表达式

&(与)一个假及为假,

|(或)一个真及为真,

^(异或)两边相同为假不同为真,

!(非),

&&(双与)有一个为假剩余部分不再运算效率比&高一点点,

||(双或)有一个为真剩余部分不再运算效率比|高一点点,

位运算符:

<<(左移):3<<2=12 --->  就是 3*2的2次方,

>>(右移):6>>2=1 ---> 就是 6/2的2次方,最高位是1用1补齐,最高位是0用0补齐

>>>(无符号右移):都用0补齐

&(与)(当位运算符使用):

|(或)(当位运算符使用):

^(异或)(当位运算符使用):相同为假,不同为真,一个数异或一个数两次,结果不变,加密使用

~(反码):0...110=6 --->(取反)--->1...001--->(加1)---> 1...010=-6;

      0...111=7          1...000           1...001=-7;

01111111 127
10000001 -127(129)
00000001 1
11111111 -1(255)
00000010 2
11111110 -2(254)
00000000 0
10000000 128

用位运算,计算得出十进制数相对应的十六进制数和二进制数????运用&和>>>

三元运算符:x>1?100:200;

(8)语句:

if else语句:{}内只有一条语句,{}可以省略不写

三元运算符 与 if else 的区别:三元运算符可以简化if else代码,但是运算符号运算完一定要返回一个结果。

优先判断用户输入的数据是否在客运算区间。

switch 语句:判断条件的数据类型是(byte,short,int,char)

switch(){

case 1:

case 2:

  System.out.print("aaaaa");

}

多个答案对应一个执行语句

switch不能判断boolean型,不适合判断区间

时间: 2024-10-10 12:31:29

Java自学笔记(第二天)的相关文章

Java自学笔记(三)——输入

因为最近学的内容实际操作比较多,所以新的笔记就用代码为主体吧! 本回主要内容是输入,Java中主要用Scanner类和BufferedReader.总体来说不难,但有些细节可以总结,看代码: import java.io.*; import java.util.Scanner; public class ioTest { public static void main(String[] args) throws Exception { //Scanner提供了多种构造器,不同的构造器可以接受文件

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位

Java自学笔记(四)—— 集合类总结

今天来总结总结Java集合类.集合类又叫容器类,它封装了很多我们学过的数据结构,这些现成的集合类,实现了各种操作,使用起来非常方便,今天的总结也是以代码为主. 集合大致分为Set.List.Map三种体系.但实际上Java集合类主要由两个接口派生而出,Collection接口和Map接口. Collection接口的子接口: 1.Set,无序,元素不可重复 2.Queue 队列 3.List,有序,元素可以重复 一个个来细说,Set,可以想像成是一个大箱子,里面的东西是无序的,但是有一个条件就是

Java自学笔记(一)

假期重新拾起Java来学,先是拿来<Think in Java>看,但不幸的是,那本书真心有点生涩乏味.于是上豆瓣寻找到一本李刚老师写的<疯狂Java讲义>,这几天看了一百来页,来总结总结.网上对于此书的评论,捧的大致上说这本书相对于国外教材来说,语言贴近中国人思维,容易理解,而且内容翔实:批的说这本书太罗嗦,让人捉不到重点.实际上,就我这几天的阅读看来,这本书是非常适合我的,在细节方面的解释,以及在底层原理的揭示,在我看来,正是学习一门新语言不可或缺的东西. 对于像我这样从汇编语

Java 自学笔记-基本语法2-从控制台接收输入字符及scanner.nextLine

Scanner 类封装了输入流对象,并使用nextLine()方法输入流中获取用户输入的整行文本字符 package hahaa; import java.util.Scanner; public class ha { public static void main (String[] args) { Scanner scanner =new Scanner(System.in); System.out.println("请输入你的想输入的数字"); String line = sca

Java自学笔记(二)

这几天学的内容真是很有料,Java这门语言的核心设计思想,开始慢慢揭开面纱. 话说回来,这两天在看<疯狂Java讲义>的时候,偶尔会对一些问题产生疑惑,而这时候我重新拿起了<Thinking in Java>,我发现这本书现在对我来说,当作一本参考式的资料还是非常不错的,因为里面的内容,真的太丰富了,而且原理级的内容也讲的很到位,打算看完<疯狂>,再把<Thinking in Java>过一遍. static关键字: 好吧,先说为什么会出现这样的东西.我们说

[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

第二章  创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧..),比如书中 Boolean.valueOf(boolean) 1 public static final Boolean TRUE = new Boolean(true

[Effective Java 读书笔记] 第二章 创建和销毁对象 第六-?条

第六条 消除过期引用 JAVA中依然会有 memory leak的,比如一个栈先增长再收缩,那么从栈中弹出的对象是不会被当做垃圾回收的,即时使用栈的程序不再引用这些对象.这是因为栈的内部维护着对这些对象的过期引用(永远也不会被解除的引用),需要显示的将这些对象清空(置为null),告诉垃圾回收器回收这些对象. 比如Stack类的实现里,pop()函数最后会有对element置null的操作: public synchronized E pop() { E obj; int len = size(

Java 自学笔记-基本语法3setOut()方法设置新的输出流

1 package hahaa; 2 3 import java.io.FileNotFoundException; 4 import java.io.PrintStream; 5 6 public class ha { 7 public static void main(String[] args) { 8 try { 9 PrintStream out = System.out; //保存原输出流 10 PrintStream ps = new PrintStream("./log.txt&