一些小知识点(在IDEA中)
psvm,sout,一些快捷键
file–>setting–>搜Font,这是调字体大小和类型的,其他的IDEA的优化在百度都就行;
写代码的前提提供类包:新建项目–>在文件file中新建模块–>在文件file中的Project structure选择正确的SDK(软件开发包),语言级别选择SDK默认的即可—>然后在src上新建类包(简单的就是说给JAVA配置环境)
JAVA基础目录
1.注释、标识符、关键字
一.注释(和注解不同)
(file–>settings–>Editor–>Color Scheme–>Comments–>选择改为注释类型,就可以根据自己的喜好挑选自己喜欢的颜色;)
-
单行注释:(只能管这一行的注释,下一行的不归他管)
-
//输出一个Hello,world!
-
多行注释:
-
/*输出一个 Hello,world! */
-
文档注释:(注释的都是有功能的,那单行多行注释没有任何功能,只是提示一下)
-
/** * @Description Hello,world! * @Author JAVA01 */
-
(任何注释都不会被执行)
二。标识符
- 类名、方法名还有变量名都被称为标识符。(Java中所有组成部分都有名字)Ctrl+D可以复制多行
- 所有标识符的开头都必须是以字母(A-Z或a-z),美元符($)或者下划线(_)开始!!!!!
- (注:可以是中文但为了避免麻烦,尽量不用中文,尽量全部使用英文)
- 在标识符的内部和结尾处可以以字母(A-Z或a-z)、美元符($)、下划线(_)或者数字的任何字符结合而成
- 切记不能用Java的关键字作为标识符!!!!
- 标识符中的大小写字母是不同的,是有区别的,是非常敏感的。例如Man和man就是两个变量
三。关键字
- Java中所以的关键字必须都是小写的,没有大写的,不然就会被报错,以免造成不必要的麻烦;
- 关键字有很多,具体的看百度(Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」_明金同学的博客-CSDN博客_java常用关键字及含义)
2、数据类型
一。全世界计算机语言类型就分为两种类型,一种强类型语言,还有一种弱类型语言;
- 二者的区别呢就是变量类型是否能自动转换,例如java就是强类型语言,
1是整型,string是字符串型的,前后不一致,说白了强类型语言就是前后语言类型必须就得相同,不然就会报错,强类型语言包括Java、.net 、Python、C++等。而弱类型语言就是前后语言类型可相同也可以不相同,应用其语言的包括vb 、PHP、javascript等。
二。Java的数据类型
- 基本数据类型(java内置自带的)
-
整数类型:包括int,long,short,byte
其中:int占4个字节范围:-2147483648-----2147483647
long占8个字节范围:-9223372036854774808—9223372036854775807:
short占2个字节范围:-32768–32767
byte占1个字节范围:-128-127
-
浮点类型(也就是小数类型):包括float(占4个字节),double(占8个字节)
-
字符类型(就是计算机中使用的字母,数字,字和符号):char(占2个字节)(只有一个字符,string是字符串型)
-
boolean类型:占1位其值只有false和true两个
-
其中1,2,3被称为数值类型(没用)
//整数类型(JAVA默认的是int类型)
int num1=11;
byte num2=12;
short num3=14;
long num8=13;//数据短的转为数据长的自然不会导致数据的丢失
long num4=15131313129;//整数过大必须加上在最后加上大写字母L;(超出int范围,加上L证明这是long的类型)
long num0=15131313129L;
//小数点类型:浮点数类型(JVM默认的是double类型)
double num5=3.1415;
float num6=3.1415;//会报错
float num7=3.1415F;//加上F是为了告诉虚拟机这是float类型,也为了保证数据的不丢失;
//字符类型
char num9='A';//单括号里面只能有一个字符
//boolean类型
boolean num10=true;
//其中string不是关键字,而是java的一个类(后面会学到)
位(比特(bit)):是计算机中内部数据储存最小的单位;
(电脑中的32位和64位是指CPU处理器一次能处理的最大位数,64位计算机一般指拥有64位的处理器和64位的操作系统,32位计算机一般指拥有32位的处理器和32位的操作系统,而现在的32位处理器只支持安装32位操作系统,64位处理器却能同时支持安装32位和64位操作系统。)
字节(byte):是计算机中数据处理的基本单位,(比特(bit)是计算机中数据处理的最小单位)1个字节顶8个位:
1B=8bit 1024B=1KB 1024KB=1MB 1024MB=1GB
进制之间的转换:
十六进制0x, 0-9,AF(是因为十进制1015在十六进制中没法表示),16
在java中进制用特殊字符表示,二进制用0b开头表示,十进制不用字符表示,八进制用0开头表示,十六进制用0x开头表示。
int num1=12;//十进制数字
int num2=0b111;//二进制数字
int num3=02;//八进制数字
int num4=0x111;//十六进制数字
所以字符的本质还是数字;
char a='A';
char B='中';
System.out.println(a);//A
System.out.println((int)a);//65
System.out.println(B);//中
System.out.println((int)B);//20013
ASCII编码是单字节的,无法用来表示中文,而Unicode编码是双字节的,是用两个字节表示一个字符,
下图表示的是Unicode编码,在java中用转义字符(\)表示
char c='\u0065';
System.out.println(c);//输出的是e
- 引用数据类型(Java之外引用的数据类型)也就是JDK里的东西
1.类
2.接口
3.数组
3、类型转换
-
由于JAVA是强类型语言,所以在一定的需求下需要一些强制类型语言的转换
-
类型级别:低--------------------------------高
-
byte–>short–>char—>int—>long—>float–>double
-
强制类型转换:高到低
-
例如
-
int f=11; byte u=(byte)f;
-
方式就是在变量名前加上变量所需的类型;(类型)+(变量名)
-
自动类型转换:低到高
-
例如
-
加不加特定的语言类型都可以
-
byte f=11; int u=(byte)f; int i=f;
注意点:
-
不能对布尔值(boolean类型)进行转换
-
要注意级别高的类型转为级别低的类型,一定要强制转换,不然会报错!
-
在强制转换过程中会出现内存溢出和数字精准度问题:
-
int a=128; double i=(byte)a; System.out.println(a);//128 System.out.println(i);//-128.0出现内存溢出问题,输出byte范围的第一个字符;(不对!!!看下边的图) (byte范围是-128--127) double b=3.1415; int c=(int)b; System.out.println(b);//3.1415 System.out.println(c);//3 出现数值精度问题,数据丢失
JDK7的新特性,数字之间可以用下划线分割;
int u=10_0000_0000;
System.out.println(u);//10_0000_0000并不会输出下划线
byte溢出时应输出的一些数据
其他的类型具体看百度c语言 数据溢出时会输出什么_是想变的很厉害的小菜鸟的博客-CSDN博客_c语言溢出的结果如何得到
4.变量、常量
-
JAVA变量是程序中最基本的存储单元,主要包括变量名,变量类型和作用域;
-
每个变量都必须有变量类型,而变量类型中可以是基本数据类型和引用数据类型;
-
变量名必须都是合法的标识符;
-
变量声明必须是一句完整的语句,在变量声明的最后必须以分号结束;
-
type varname=value;(var=variable)
-
类型 变量名=值; int name1=18;
一。作用域
-
变量作用域包括类变量,实例变量还有局部变量
-
在类中可以定义方法,还有一些属性(变量);
-
局部变量必须在定义的方法中
-
局部变量必须声明和初始化值
-
实例变量在类的里面,方法的外面
-
实例变量从属于对象,如果不对对象进行初始化,输出的时候会输出这个变量类型的默认值
-
类变量就是在实例变量的基础上加了个static,他是从属于类的,(类变量又叫静态变量)
-
基本变量类型的默认值是0,0.0,u0000,布尔值的默认值是false
-
除了基本变量类型,别的默认值都是null(再说一遍string是类,不是基本类型,属于引用类型)
-
public class JAVA02 { String name; int age; static double B=2000; public static void main(String[] args) { JAVA02 A=new JAVA02(); System.out.println(A.age);//输出0 System.out.println(A.name);//输出null System.out.println(B);//实例变量是从属于类的,不用再实例化,直接输出就行,输出B的值2000 } }
-
常量用final修饰,修饰符在变量类型前面,存在多个修饰符的时候是不存在先后的,输出的结果是不受影响的;
public class JAVA02 {
static final double i=2000;
final static double l=2000;
public static void main(String[] args) {
System.out.println(i);//输出2000.0
System.out.println(l);//输出2000.0
}
}
二。变量名命名规范
- 所有的变量名,类名,方法名都应该用自己熟悉的名字起,尽量都是英文的
- 类成员变量:首字母小写后面的用驼峰的规则,比如类变量名为lastname,正确的命名应该是lastName
- 局部变量:首字母小写和驼峰原则,与类成员变量的命名规范相同
- 常量:大写字母加下划线,例如常量名为firstname ,正确的命名应该是FIRST_NAME
- 类名:首字母大写加驼峰原则,即如类名为secondname,正确的命名应该是SecondName(准确应该说是类名全部都是驼峰原则)
- 方法名:首字母小写加驼峰原则,即如方法名为redperson,正确的命名应该是redPerson.
- 除了类名和常量名,其他的都应该是首字母小写后面的用驼峰原则。
5、运算符
一。基本的运算符
-
算法运算符:+ - * / % ++ –
-
赋值运算符:=
-
关系运算符:> < >= <= == != instance of
-
逻辑运算符:&&(与) ||(或) !(非),
-
boolean a=false; boolean b=true; System.out.println(a&&b);//false System.out.println(a||b);//true System.out.println(!(a&&b));//true
-
位运算符:& ,| ,^,~ ,>> ,<<,>>>(不用记,理解就好了),A=0011 0110,B=1100 1010,A^B=0010 0010
-
^是相同的数为1,不同的为0,&是全为1才为1,|是有1即为1
-
条件运算符: ?:
-
拓展赋值运算符:+=,-=,*=,/=
public class JAVA02 { public static void main(String[] args) { long a=10000L; int b=90; short c=8; byte d=7; System.out.println(a+b+c+d);//输出的类型是long类型,比int级别高 System.out.println(b+c+d);//输出的类型是int类型 System.out.println(c+d);//输出的类型是int类型,只有没有比int高的基本类型,输出的类型都是int类型 } }
-
a++和++a的理解
-
public static void main(String[] args) { int a=3; int b=a++;//先赋值,后加减,相当于,b=a, a=a+1,前执行b=a,后执行a=a+1 System.out.println(a);//输出4 int c=++a;//先加减,后赋值,相当于,c=a+1,a+1=a,这个a是上一行执行完之后的a,因为在java程序运行中是解释型语言,一句一句的翻译 System.out.println(a);//输出5 System.out.println(b);//输出3 System.out.println(c);//输出5 }
-
幂运算:在Java中需借助一些工具来做;在做一些特殊的数学运算的时候例如微积分啥的,都得借助Math函数来做运算
-
public static void main(String[] args) { //幂运算 double number2=Math.pow(3,2); //Math.pow(double a,double b); System.out.println(number2); }
//短路运算
int c=5;
boolean d=(c<4)&&(c>3);
System.out.println(d);//执行d,在d中c<4,是错误的,到这里程序就不再运行了,就结束了
System.out.println(c);//不执行
//2*2*2*2=16如何快速打出来
System.out.println(2<<3);//2的二进制数左移三位,0000 0010---->0001 0000
-
public class JAVA04 { public static void main(String[] args) { int a=10; int b=20; System.out.println(a+b+"");//+可以是字符串连接串,输出30 System.out.println(""+a+b);//输出1020 } }
二。三元运算符
-
X ?Y : Z
-
如果X的结果为true,输出Y,否则不然输出Z
-
public class JAVA04 { public static void main(String[] args) { int score=70; String score1=score>60?"及格":"不及格"; System.out.println(score1);//输出结果为及格 } }
6.包机制、JavaDoc
一。包装制
-
建立包,包名一般为域名的倒置,例如www.yy.com需要倒过来写com.yy.com,
-
如果建立的包只出现一个名字为com.yy.com,那么点击齿轮,取消compact middle packages选择即可出现三层的包
-
Ctrl+左键可以查看包具体所在的位置
-
import主要用于导入特定的包,位置得在package的下面,package后面是此包的路径
-
所谓的包就类似于电脑中的文件夹,作用就是减少类名中的命名空间,分类明确
-
import com.yy.*;
-
其中*号是通配符,可以导入yy包下所有的类
二、JavaDoc
-
JavaDoc是用来生成自己的API文档
-
API文档是一个技术内容交付文件,用来查看类,方法的功能和用法,在大型公司中,开发大型软件时需要涉及到成千上万个类,需要的人员很多,每个人需要负责多个类,而要用到其他人所用到的类,无需看类中方法的过程是怎样形成的,直接通过API文档查看所需的类和方法,然后通过这个类和方法来实现一些特定所需的功能。
-
API文档如图所示
-
-
实现API文档:(在新版本的IDEA可以直接生成API文档,工具—>生成JavaDoc)
-
老办法:右击所需的类,选择打开文件路径的选项,然后通过路径打开命名行窗口,输入以下命令
-
UTF-8输入所需的java类文件,多个类文件用空格隔开
-
文档注释就是可以在API文档中显示
其实在那个里面都能注释,就是一个辅助作用,就是用来给别人看的