JAVA笔记

本文详细介绍了Java的基础知识,包括运算符优先级、Eclipse常用快捷键、数据类型、变量、表达式、循环结构、数组、字符串操作以及IO流等内容。强调了在遇到运算符优先级不确定时使用小括号的重要性,以及Eclipse中的Ctrl+C、Ctrl+V等快捷键的用途。此外,还讲解了如何使用指定编码读写字符,以及基本数据类型的表示形式和转换。
摘要由CSDN通过智能技术生成
--------------
-----day2-----
--------------

*程序的数据操作往往都在内存中操作的,也就是说数据运算都在内存中完成.

*什么是变量?(*****)
–变量就是内存中的一块用来存放数据的存储单元.
–变量中的值可变
–我们通过变量名就可以找到内存中所开辟的存储单元.
–变量的数据类型有多个.

*如何在内存中开辟一个变量?(*****)
1.要确定变量存放的数据类型
2.确定变量所占内存空间的大小(确定数据类型)
语法:
数据类型 变量名;

比如:int num;
     num = 10;

*两个变量中的值做交换,传统做法使用第三个临时变量做过度.

注意点:
在一个方法中不能声明同名的变量,会冲突

补充:
单行注释可以嵌套,多行注释不能嵌套

*标识符的命名规则(*****)
什么是标识符?
–和名字有关的字符串,比如类名,变量名,常量名,接口名等.
类名的命名规则:
1.首字符大写,第二个英文单词的首字符也大写,比如StudentClass 称之为"驼峰命名法"
2.首字母必须是英文字母,下划线, 符 号 开 头 3. 除 了 首 字 母 以 外 的 其 余 字 符 可 以 是 英 文 字 母 , 下 划 线 , 符号开头 3.除了首字母以外的其余字符可以是英文字母,下划线, 3.,线,符号,还可以是数字
4.类名要通俗易懂,能一个单词就一个单词来描述
5.避开关键字,就是java已经占用的单词

变量名的命名规则
1.首字符小写,第二个英文单词的首字符也大写,比如myScore
2.首字母必须是英文字母,下划线, 符 号 开 头 3. 除 了 首 字 母 以 外 的 其 余 字 符 可 以 是 英 文 字 母 , 下 划 线 , 符号开头 3.除了首字母以外的其余字符可以是英文字母,下划线, 3.,线,符号,还可以是数字
4.变量名要通俗易懂,能一个单词就一个单词来描述,不要出现 int a = 10
5.避免使用关键字,就是java已经占用的单词,比如:int int; int class;

*计算机底层都是由0和1组成的二进制序列,0或1就代表了1位(bit)
计算机中的单位
1B = 8b (1个字节=8位)
1K = 1024B
1M = 1024K
1G = 1024M

*数据类型的作用有两个(*****)
–确定变量中存放数据的格式
–确定开辟内存空间的大小

*java中的数据类型()
分两大类:
–基本数据类型
分为两类:
–数值型
–整数
byte(1个字节)
short(2个字节)
int(4个字节)(
) 默认的整数都是int类型
long(8个字节)
–浮点数
float(单精度浮点数,4个字节)
double(双精度浮点数,8个字节)(*****) 默认小数都是double类型
–非数值型
–boolean(布尔类型,1个字节)只能存放true或false
–char(2个字节)–字符型,可以和整型互换,使用单引号括起来,
unicode编码表,兼容了前面的ascii表

 --引用数据类型(后续章节讲)
      --字符串 (String):使用双引号括起来的字符序列(*****)
      --类
      --接口
      --数组
      ....

注意:字符串 + 任何数据类型都是字符串拼接,拼接好以后结果是字符串类型

*编码表:
就是把对应国家常用的字符对应的二进制码
常用的编码表:
ascii,iso-8859-1,gb2312,gbk,big5, unicode(全世界常用的字符编码表),utf-8

*常用的2个转义字符(*****)
\n:换行
\t:制表符

*java对数值的表示形式(了解)
1.十进制 0–9 满10进1
2.二进制 0,1组成 ,满2进1()
3.八进制 0–7组成,满8进1
4.十六进制 0–9 A–F 满16进1(
)

数制之间进行转换
十进制转二进制:除2取余,从后往前输出即可.
二进制转10进制:乘以2的n次方
100001 =12^0 +12^5=32+1=33

十进制转8进制:除8取余,从后往前输出即可.
反之:乘以8的n次方

十进制转十六进制:除16取余,从后往前输出即可.
反之:乘以16的n次方

16进制和二进制之间的互转
二进制转十六:4位变1位
比如:0010 0110 0101 0100== 2654
十六进制转二进制:1位变四位
0X1AFF=0001 1010 1111 1111
8进制和二进制之间的互转

 二进制转八进制 :3位变1位
    010 011 001 010 100= 023124
 八进制转二进制:1位变三位
    0357= 011 101 111

*基本的类型转换
–自动类型转换(隐式转换)
*数据类型兼容
*小的数据赋值给大的数据类型

–强制类型转换
*数据类型兼容
*大的数据赋值给小的数据类型,会报错,必须强制类型转换,可能会导致精度的丢失.

注意:
1. 一个表达式出来的结果往往跟大的数据类型走. long和float会跟float走,
数学运算表达式中有double的,结果肯定是double类型
2.假如表达式中有一个是字符串类型的数据,那么结果肯定是字符串类型.

*什么是表达式?
由操作数和操作符组成的就认为是表达式,比如 1 + 1, num1 - num2

运算符
–算数运算符:
+(两个功能,数学运算,字符串连接),-(数学运算,负数),
,/(取商), % (取余数),
++:
单独的表达式++ 在前面和后面一样,都是自身加1.
int res = number++;//有其它运算符的时候,++ 在后面,先赋值,后自身加1
//int res = number; number++;
–:
和++操作方式一样.

–赋值运算符: =
复合赋值运算符:
+=,-=,*=,/=,%= 自身做对应的操作.

–关系运算符:–结果是true或false,出来的是boolean类型的数据
==,!=,>,<,>=,<=

–逻辑运算符:–结果是true或false,出来的是boolean类型的数据
(*****)&&:短路与: 多个条件只要有一个条件为false,那么整个表达式就为false,
只有所有的条件为true,那么表达式的结果就为true.
当第一个条件不成立了,后续的条件就不再做判断,直接结果为false
2>3 && 4>3

 (*****) ||:短路或: 多个条件只要满足任意一个就为true,只有全部不成立才为false.
		当第一个条件成立了,后面就不用再判断了,直接返回为true.
	 2<3 || 4>3
   (*****)!:取反: !true   !false
   --------------以下主要是对二进制进行操作的----------------------
    &: 与 
       *用在逻辑表达式中,不管第一个表达式1条件是否不成立,后续的表达式都会执行,不会短路    
       *4 & 5 =4  :两个都是1结果为1,其余结果都是0 




    |: 或
       * *用在逻辑表达式中,不管第一个表达式1条件是否成立,后续的表达式都会执行,不会短路 
       4 | 5 =5  

    ^: 异或
       *当一个数连续异或两个相同数的时候又会得到自身的值.
     
 --位运算符(用来操作二进制数据)
   计算机底层使用一个数的补码来进行运算的.
     计算机有三个码值:
       原码:
       反码:
       补码:

      正数的符号位是0,负数的符号位是1
      正数的原码和反码和补码都是一样的
      负数的反码= 正数的原码按位取反,符号位不变
      负数的补码= 负数的反码 + 1;
      补码= 原码取反(符号位不变) + 1


      
    (*****)<<:左移 --左移几位右边就是补多少个0,也就是乘以2的几次方.
     5<<3  = 5 * 2^3
      00000000000000000000000000101000
    >>:右移--右移几位,左边补0,右边去掉几位,也就是除以2的几次方.
    (*****)40>>3 =5 = 40 / 2^3
       00000000000000000000000000000101

*运算符的优先级
搞不清楚就多添加小括号,小括号中还可以套小括号,小括号优先级最高.

*获取键盘输入的整数,小数和字符串
1)导入Scanner工具:
import java.util.Scanner;
2)创建一个Scanner 对象
Scanner input = new Scanner(System.in);
3)调用Scanner对象中的方法来获取键盘输入的内容
int number = input.nextInt();//获取键盘输入的整数
double number = input.nextDouble();//获取键盘输入的浮点数
String number = input.next();//获取键盘输入的字符串

*程序默认是线性往下执行的,但在现实的环境中我们可能要选择性的来进行执行,所以要
学习java程序中的分支结构
–条件分支结构
1)简单if结构
语法:
if(条件){
//要执行的语句块
}
特点:条件成立执行if里面的语句块,条件不成立跳过if语句块,执行if后面的指令.

2)简单if…else
语法:
if(条件){
//if语句块
}else{
//else语句块
}

 注意:当if和else中只有一条的语句的时候,花括号可以省略的,为了不出现问题,一般
      都推荐使用花括号.

3)嵌套if
语法:
if(条件1){
if(条件2){
//语句块1
}else{
//else语句块1
}
}else{
if(条件2){
//语句块1
}else{
//else语句块1
}

  }

 4)多重if
    语法:
 if(条件1){
       //语句1
 }else if(条件2){
        //语句2
 }else if(条件3){
        //语句3
 }else if(条件4){
        //语句4
 }else{
        //else语句块
 }
  注意:
      1.当一个条件成立了,后面的判断就不会再执行了.
 2.if条件假如互换的话可能会影响最终的结果

–循环结构

--------------
-----day3-----
--------------

5)switch…case语句
switch(表达式){
case 值1:
语句;
break;
case 值2:
语句;
break;
case 值3:
语句;
break;

[default:
语句;
break;]

 }

总结:
1.switch 中的表达式出来的结果是一个常量值(整数(int,short,byte),字符(char), 字符串(jdk1.5版本后才可以使用),枚举 (enum))
2.break的作用是结束switch,可以省略,一旦省略了,从比对成功的位置开始一直往下执行,直到碰到break或swicth结束为止.
3. case后面列出的常量能否重复?不能重复.
4.只要每个case后面都有break,那么case顺序颠倒不影响结果
5.default也可以随意放,随意放的时候要注意是否加break;
6.和多重if进行比较,多重if的功能强大,它既可以做等值判断,也可以做区间判断,而switch只能做等值判断.做等值判断
switch语法更简洁.

补充一点:
比较两个字符串是否相等使用.equals(“字符串”),不能使用==
比如: String str1 = “abc”; String str2 = “abc”;
if(str1.equals(str2)){

}

Eclipse的使用
–它是一个开发平台,不仅仅是用来开发Java的,可以自定义在平台上安装相应的插件,就可以开发相应的应用.
–下载地址:www.eclipse.org
–必须前提配置好环境变量.

Eclipse开发java的步骤
1.创建一个java项目
2.创建一个class类文件
3.编写代码
4.运行字节码文件

Eclipse常用的设置
1.修改代码编辑区的字体大小
2.修改控制台的字体大小

Eclipse 常用的快捷键
1.ctrl+c:复制
2.ctrl+x:剪切
3.ctrl+v:粘贴
4.ctrl+z:撤销
5.ctrl+y:还原
6.ctrl+a:全选

*ctrl+d:删除一行
*ctrl+/:单行注释的添加和去除
*ctrl + shift + / :添加多行注释 取消:ctrl+shift+
*ctrl + shift + f: 格式化程序,必须在非中文的情况下
*ctrl + alt + 向下键 : 复制当前行到下一行
*ctrl + alt + 向上键 : 复制当前行到上一行
*alt + 向下键 或 向上键 :移动当前行前后移动
*ctrl + shift + o: 自动导包
*alt + /:自动猜测意图

sysout alt+/ 自动补全输出语句
main alt+/ 自动生成主方法

*切换工作目录 : file —>switch workspace
*项目的删除有两种方式:
-删除的时候不打勾,只是解除和软件的绑定,磁盘上没有删除
-删除的时候打勾,解除和软件的绑定,并从磁盘上永久删除
*学会导入java项目
import–>General -->Existing Projects into workspace


–循环结构
什么是循环?
—重复做类似的事情.
循环的好处的什么?
–对做重复的事情减少代码量

–做循环我们要明确几个步骤
1.确定什么情况下循环–确定循环条件
2.确定循环干什么事情–确定循环体语句(难点–要找出规律来)
3.确保防止死循环–更新循环体变量

–什么是循环体变量?
控制循环次数的变量就叫循环体变量,也就在循环的过程中必须要修改此变量,目的是让条件最终变为false停止循环

–循环的分类:
*while循环
语法:
while(条件表达式){
//循环体语句
}

   执行流程:  当条件表达式为true的时候会执行循环体语句,执行完成以后再回到条件表达式来判断,
	   条件为true再执行循环体语句,直到条件表达式为false的时候才会结束循环.

   特点:先判断后执行,循环体语句可能一次都不执行.
       

*do...while循环
 语法:
   do{
     //循环体语句
   }while(循环条件);--->分号不能忘
  
   执行流程:先执行循环体语句,执行完再判断循环条件,要是为true,又执行循环体语句,直到循环条件为false为止.

   特点:先执行再判断,循环体语句至少执行一次.


   注意:
      1.其实while和do...while 完全可以互相替换.根据实际情况选择
      2.while和do...while 推荐在循环次数不确定的情况下使用.



*for循环
  语法:
  for(表达式1;表达式2;表达式3){
      // 循环体语句4
  }
 
  表达式1:变量的初始化,只执行一次
  表达式2:循环条件
  表达式3:更新循环体变量防止死循环

  执行流程:
    表达式1-->表达式2(true)-->循环体语句4--->表达式3 --->表达式2(true)-->循环体语句4--->表达式3 --->表达式2  (false)-->循环结束
  
  注意:
     *表达式1可以省略的.--放到循环上面
     *表达式2可以省略的.--代表条件永远为true
     *表达式3可以省略的.--放在循环体语句之后
     总结:3大表达式全都能省略,就是两个分号不能省略.

 特点:和while一样.它是先判断后执行.推荐在循环次数确定的情况下使用for循环,因为语法更简洁.
      其实3种循环完全可以互相替换.

  int sum = 0;//求和
  int number = 1;//变量初始化
  while(number <= 100){
      sum += number;
      number += 3;//更新循环体变量
  }
  System.out.println("1+4+7+...=" + sum);

  for(int sum = 0,number = 0;number <= 100;number += 3){
      sum += number;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值