【 建议】
1.锻炼“双核”处理能力,边听讲边思考,边做“笔记”
2.纸上得来终觉浅,绝知此事要躬行!
--不要完全依赖书和视频
3.建立行之有效的学习方法
--学习编程的捷径--**敲,狂敲**
--学习编程的规范--**加注释**
**【快捷键】
https://blog.csdn.net/bd_matto/article/details/50899032
shift+ctrl+f:自动对齐
alt+/:自动补全**
alt+shift+j:将光标放在方法名上,按快捷键。会生成上述方法注释的格式,具体内容还是要自己填写的。
π=Math.PI
【 命令行操作】
*常用的DOS命令(是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令、磁盘操作类命令、文件操作类命令和其它命令。)*
---dir:列出当前目录下的文件以及文件夹
---md: 创建目录
---rd: 删除目录
---cd: 进入指定目录
---cd..: 返回到上一级目录
---cd\: 返回到根目录
---del: 删除文件
---exit: 退出dos命令
【HelloWorld】
1.System.out.print();表示下一行不换行;
System.out.println();表示下一行换行;
2. PNG,图像文件存储格式,其目的是试图(原来此处使用了"企图")替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。可移植网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG's Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。PNG使用从LZ77派生的无损数据压缩算法。 一般应用于JAVA程序中,或网页或S60程序中是因为它压缩比高,生成文件容量小。
BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式。
jpg全名是JPEG 。JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。
优点:摄影作品或写实作品支持高级压缩。
利用可变的压缩比可以控制文件大小。
支持交错(对于渐近式 JPEG 文件)。
广泛支持Internet标准。
由于体积小,jpg在万维网中被用来储存和传输照片的格式。
缺点:有损耗压缩会使原始图片数据质量下降。
当您编辑和重新保存 JPEG 文件时,JPEG 会混合原始图片数据的质量下降。这种下降是累积性的。
JPEG 不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片。
3.见下图 :执行程序:
1. 编译:javac.exe 编译完,生成诸多个.class字节码文件
2. 运行:java.exe
4.URL:统一资源定位符 URL 是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。URL 给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。只要能够对资源定位,系统就可以对资源进行各种操作,如存取、更新、替换和查找其属性。URL 相当于一个文件名在网络范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象的一个指针。
5.一个源文件(.java结尾的)下可以有多个类;但只能有一个声明为public的类,且要求声明为public的类名必须与源文件名一样
6.单行注释 //注释文字
多行注释 /* 注释文字 */(不能嵌套使用)
文档注释 /**
*@author 指定java程序的作者
*@version 指定源文件的版本
*@param 方法的参数说明信息
*/
【java中的名称命名规范】
1.包名:多单词组成时所有字母都小写:xxxyyyzzz
2.类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz
3.变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz
4.常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
//在起名字时,为了提高阅读性,要尽量有意义,“见名知意”。
【变量】
public class HelloWorld {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
// 虽然布尔型真正存放的数据是0(false) 1(true)
// 但是,不能直接使用0 1 进行赋值
boolean b3 = 1;
}
}
public class HelloWorld {
public static void main(String[] args) {
byte b = 5;
int i1 = 10;
int i2 = 300;
b = (byte) i1;
//因为i1的值是在byte范围之内,所以即便进行强制转换
//最后得到的值,也是10
System.out.println(b);
//因为i2的值是在byte范围之外,所以就会按照byte的长度进行截取
//i2的值是300,其对应的二进制数是 100101100
//按照byte的长度8位进行截取后,其值为 00101100 即44
b =(byte) i2;
System.out.println(b);
//查看一个整数对应的二进制的方法:
System.out.println(Integer.toBinaryString(i2));
}
}
整型和整型进行运算的时候,如果两边的值都是小于或者等于int的,那么其结果就是int。
所以a+b之后得到的类型是int
public class HelloWorld {
public void method1(final int j) {
short a = 1;
short b = 2;
short c = (short) (a+b);
}
}
属性的作用域在方法中,参数的作用域也在方法中,如果属性和参数命名相同了的话? 那么到底取哪个值?
public class HelloWorld {
int i = 1; //属性名是i
public void method1(int i){ //参数也是i
System.out.println(i);
}
public static void main(String[] args) {
new HelloWorld().method1(5);
//结果打印出来是 1还是5?
}
}
输出是5,当访问的变量被多个作用域影响的时候,按照就近原则取
如果final修饰的是参数,能否在方法里给这个参数赋值?
public class HelloWorld {
public void method1(final int j) {
j = 5; //这个能否执行?
}
}
不可以,因为在调用方法的时候,就一定会第一次赋值了,后面不能再进行多次赋值
1.整数类型:定义long型变量,值的末尾必须加l或L。
如:long s=213341235l;
2.浮点型数据:声明float浮点型数据,值的末尾加F或f;
double s1=12.3; /* 值12.3double类型为浮点型的默认类型,若为float类型则在值后加F,不然申请8位字节与float申请的4位字节不匹配而出错。*/
float s2=12.3F;//double与float取值范围不同,
3.字符型:
***char只能表示一个字符(中文,英文,标点符号,日文......);
char c1='a';
char c2='ab';//错误
String str="ab";
char c3='中';
char c4="中国”;
***可以表示转义字符;
char c5='\t';
4.boolean型不能取值为null;
【变量之间的运算】
(不考虑boolean,剩下char,byte,short,int,long,float,double)
1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为容量大的数据类型,插入,char,byte,short==>int==>long==>float==>double
****需要注意的:当char,byte,short之间做运算时,默认的结果为int类型
2.强制类型转换:容量大的转化成容量小的,要使用强制类型转换符()
//强制类型转换的问题:导致精度的损失{如int型数据12345(4个字节32位)转换成byte(8位)变成数据57
0000 0000 0000 0000 0011 0000 **0011 1001** 共32位,
留0011 1001==》二进制转换成十进制位==》57
//平时常用的字符串,也是一种数据类型:String
//字符串与基本数据类型之间的运算:只能是连接运算:+ ,得到的结果仍为一个字符串
如int m1 =123;
String str="abc";
String str1=str+m1;//这里的加号为连接运算,结果为abc123
再如String str1="hello";
int myInt1=12;
char ch1='a';//97
System.out.println(str1+myInt1+ch1);//hello12a
System.out.println(myInt1+ch1+str1);//109hello
System.out.println(ch1+str1+myInt1);//ahello12
//String str2=12;//错误
String str2="12";//正确
String str2=12+"";//正确
【进制与正码·反码·补码】
【Scanner】
- 使用Scanner读取整数
注意: 使用Scanner类,需要在最前面加上
import java.util.Scanner;
表示导入这个类,才能够正常使用
import java.util.Scanner;
public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一个整数:"+a); int b = s.nextInt(); System.out.println("第二个整数:"+b); } }
- 使用Scanner读取浮点数
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); float a = s.nextFloat(); System.out.println("读取的浮点数的值是:"+a); } }
- 使用Scanner读取字符串
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); String a = s.nextLine(); System.out.println("读取的字符串是:"+a); } }
- 读取了整数后,接着读取字符串
需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".
所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i = s.nextInt();
System.out.println("读取的整数是"+ i);
String rn = s.nextLine();
String a = s.nextLine();
System.out.println("读取的字符串是:"+a);
}
}