第一章:java概述与基础知识
第一部分:java概述
1、什么是编程?
编程就是让计算机为解决某个问题而使用某个程序设计语言编写程序代码,并最终得到结果的过程。人们需要将需要解决的问题通过计算机能够理解的形式告诉计算机,这种人和计算机之间的交流的过程就是编程。2、java语言的概述:
a、java是有SUN公司推出的一门高级语言;b、是一种面向Internet的编程语言;c、java语言简单易学,是面向对象的一门语言,是一个与平台(操作系统)无关的一门语言;3、三大技术框架:
a、J2EE:企业版:主要是给企业提供解决方案,是针对javaWEB的开发;b、J2SE:标准版:主要是为了开发普通开发和商务应用程序提供的解决方案;比如可以搞个java版的扫雷或者是java版的QQ;c、J2ME:小型版:主要是针对电子消费类产品的;比如手机里面的一些应用,都是用JAVAME完成的;1.5版本之后更名为JAVAEE、JAVASE和JAVAME;4、java语言的特点:
跨平台性:这边说的跨平台指的是操作系统:windows或者是Linus系统,就是说用java做的软件在windows或和Linus系统上面都是可以运行的。java为什么能够跨平台是因为在java软件里面有个虚拟机(jvm),有虚拟机去执行java已经写好的软件,只要你操作系统上面装好虚拟机,那么就可以运行你写好的java程序。但是虚拟机是依赖于平台的,不同的操作系统是需要安装对应的虚拟机;java语言之所以火的原因之一就是:java的跨平台性;5、JRE和JDK;
JRE:就是java的运行环境JDK:java的开发工具包;这边要说明的是如果已经安装好了JDK那么就不要单独再安装JRE了,因为JDK里面已经包括了JRE;6、java程序运行机制;
![]()
编译:javac 文件名.后缀名运行:javac 类名我的总结:(1)java语言是一门面向对象的高级语言,它简单易学,安全可靠并且与平台无关,java之所以很流行是因为它是与平台无关的;(2)一个.java文件的运行,需要先通过编译器进行编译,然后生成.class的字节码文件,然后通过java的运行程序运行字节码文件,最后产生结果。
第二部分:java基础知识
1、关键字:
被java赋予了特殊含义的单词;2、注释:
a、单行注释://b、多行注释:/**/
c、文档注释:/***/ -->这个是java特有的,用于生成文档用的。3、标识符:
其实就是我们在为了阅读方便自定义的名称;如:类名、方法名和变量名;标识符的命名规则:
(1)有0~9之间的数字,26个英文字母大小写,还有一个$和_(下划线);(2)不能用数字开头以及不能使用关键字;(3)在java里面是严格区分大小写的;java中的名称规范:
(1)包名:多单词组成时所有字母都小写。
(2)类名接口名:多单词组成时,所有单词的首字母大写。
(3)变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写。
(4)常量名:所有字母都大写。多单词时每个单词用下划线连接。
4、常量和变量
(1)常量:就是java中固定不变的数值;
|--最常见的整数、小数,|--在java里面还有一个就是布尔型常量:false和true|--在java里面还有就是字符常量,用单引号将字符引起来,如‘4’、‘+’、‘a’ ,注意单引号里面只能放一个字符;|--字符串常量:就是存在很多字符的串,如“ab”、“a”、“”(空内容的串);举例:羊肉串(2)整数:
在java中整数有四种表现形式:分别是二进制、八进制、十进制和十六进制,所谓的多少进制就是逢多少就进一;八进制用0开头表示,十六进制用0x开头表示;负数的二进制表现形式:对应的正数二进制取反加1;
(3)变量:
就是将不确定数据进行存储换言之就是需要在内存中开辟一片空间;在明确空间的时候需要明确数据类型、变量名称和数据;只要有不确定的数据就用变量来进行存储;
数据类型的划分如下图所示:
(4)byte是一两的碗,short是二两的碗,int是四两的碗,long是八两的碗,一两的碗里面只能装一两的饭;
(5)整数在默认是int型的,而小数默认是double型的(占8个8位),以高精度为主,
(6)定义变量的格式:数据类型 变量名 = 初始化值;
示例:
class VerDemo { public static void main(String[] args) { int x =4; System.out.println(x); x =10; System.out.println(x); long l =8l; float f = 7.8f; // 字符型变量 char ch = '+'; char ch2 = ' '; } }
![](https://i-blog.csdnimg.cn/blog_migrate/27b52ef8be5a45bf67d486691e2ef7d3.png)
(7)什么时候定义变量?当数据不确定的时候,需要对数据进行存储时,就要定义一个变量来完成存储动作;
(8)类型转换
byte b =5;
b = b+7;
这时在编译的时候就报错,报错的原因在于:byte是占1个8位的,而7是int类型的,是占4个8位的,因此byte类型的不可以存放int类型的数据,不同的数据类型之间是不能直接做数值运算的,如果要运算的话要先将两个数据类型提升为同一种数据类型,这个是自动数据类型提升,提升的原则是:以大的为主,小的向大的进行提升,一个1两的碗不能装4两的饭,而b+7是的b是小转大,是自动类型的提升为int类型,b = b+7;这时就要做一个强制性的动作:
b = (byte)(b+7);
这个是将b+7的和强制转换成byte类型,将值赋给b;这是将int类型的向下转成byte类型的,大转小;
我的总结:(1)类型转换:小转大:自动数据类型提升;大转小:要强转,强制类型的转换;
5、java的运算符
(1)算术运算符:int 类型的算除法是取整数部分的,int x =9876; x = x/1000*1000;
%:取模,一个规律:左边如果小于右边,结果是左边;左边等于右边,结果是0;右边是1,结果是0;在取模是时候,如果出现了负数,那么结果只看左边;这边有个a的值肯定是自增1以后的值,而b就要看情况了;a++;//和a = a+1;是相等的; //a+1;是一个废话,没有把值给内存; b = ++a;//是a先自己自增1,然后把自增的值赋给b b = a++;//a先把值赋给b,然后a自增1;
System.out.println("ab="+5+5);//运算过程是:"ab5"+5-->ab55,所以结果是ab55;
6、转义字符
定义:通过\,来转变后面字母或者符号的含义;转义字符要写在被转义的那个符号的前面;
如:\n:换行;在Linus系统里面换行是由一个字符表示的,就是\n;而在windows系统里面是由两个字符表示的就是\r\n;
\b:退格;
\r:按下回车符;
\t:制表符。
7、赋值运算符
//赋值运算符:+=、-=、/=、&=
x+=6;//就相当于:x = x +6;就是说把左右两边的和赋给左边;
short s =6; s = s +8;//这个是不ok的,因为1两的碗不能装4两的饭,这个是两个动作; s+=5;//而这个是可以的,这个只有一个动作,只做了一个赋值运算,就是把左右两边的和赋给左边,这个内部有一个自动转化的动作;
8、比较运算符
比较运算符运算出来的结果要么是true要么是false,==是比较运算符,=是赋值运算符;
9、逻辑运算符
&:只要两边的boolean表达式结果,有一个为false,那么结果就是false;
|:只要两边的boolean表达式结果,有一个是true,那么结果就是true;
^:异或:就是和|有点不一样,当true^true = false;两边相同结果是false,两边不同为true;
&&:当左边为false时,右边不运算;
||:当左边为true时,右边不运算;
10、三元运算符
特点:三个元素参与运算的符号,运算完以后是一定有结果的;
语法格式:x?y:z;其中x是boolean类型的表达式,先计算x的值,若为true,那么这个三元运算符的结果就是y的值,如果是false,那么这个三元运算符的值就是z的值;
11、程序流程控制
判断结构语句:if语句:
/*
if语句有三种格式:
1、一层判断
if(条件表达式)
{
执行语句;
}
2、两层判断
if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3、多层条件判断
if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
.......
else
{
执行语句;
}
其实三元运算符是if else语句的简写格式,但是它们是有区别的:if else结构简写格式是:变量 = (条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以简化if else代码;
弊端:因为是一个运算符,所以运算完要有一个结果;
*/
class IfDemo
{
public static void main(String[] args)
{
int x =8;
// 流程都是从上到下一次执行的,但是如果条件不满足的话,那么就不执行if语句里面的内容;
// 如果x满足条件的话,那么就执行hello和over,如果不满足条件的话,那么就执行over;
if(x>5)
{
System.out.println("hello");
}
System.out.println("over");
int n =3;
// 这个是对n的多次判断,下面的是一个整体只要有一个满足,那么就结束了;
// 下面运行的结果是a;
if(n>1)
{
System.out.println("a");
}
else if(n>2)
{
System.out.println("b");
}
else if(n>3)
{
System.out.println("c");
}
else
{
System.out.println("d");
}
// 下面是两种格式的if和if else,前面两个是if的一个格式,后面的if else的
// 所以运行的结果是abd
int n =3;
if(n>1)
{
System.out.println("a");
}
if(n>2)
{
System.out.println("b");
}
// n如果不满足条件的话,那么就运行d
if(n>3)
{
System.out.println("c");
}
else
{
System.out.println("d");
}
}
}
switch控制语句格式:
/**/
class SwitchDemo
{
public static void main(String[] args)
{
switch(表达式)
{
case 表达式可能的结果值1:
执行语句;
break;
case 表达式可能的结果值1:
执行语句;
break;
case 表达式可能的结果值1:
执行语句;
break;
...
default:
执行语句;
break;//这个最后一般不写;
}
}
}
循环结构:用于处理需要重复执行的操作;
while:不知道要循环执行多少次;先判断条件,只要条件满足才执行循环体;do while:也是不知道循环要执行多少次,只是知道至少要执行一次;先执行循环体,再判断条件;循环体至少执行一次for:需要知道循环的次数;
/*
if 语句和while语句的格式相同,但是它们是有区别:if只是判断一次,而while是需要循环多次,判断多次;
while判断完条件以后会执行一次循环体,当执行完以后自动的再次判断条件看是否还满足条件,满足就执行,不满足就不执行;
while语句格式:
while(条件表达是值为true)
{
循环体(执行语句);
}
循环结构(for)格式:
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3))
{
执行语句(4);
}
执行顺序:(1)->(2)->(4)->(3)->(2)->(4)->(3)
那么什么时候使用循环结构?
当要对某些语句执行很多次的时候,就要用到循环语句;
*/
class XunHuanDemo
{
public static void main(String[] args)
{
int x=1;
while(x<10)
{
System.out.println("x="+x);
++x;//要控制循环的条件;
x+=2;//打印所有的基数;
}
// for循环的x只在大括号里面有效,离开了大括号那么x的值就消失了;
for(int x=0;x<3;x++)
{
System.out.println("x="+x);
}
}
}
我的总结:while和for循环是可以进行互换的,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还是可以继续使用的;
本章总结:
1、java语言是一门面向对象的高级语言,它简单易学,安全可靠并且与平台无关,java之所以很流行是因为它是与平台无关的;
2、一个.java文件的运行,需要先通过编译器进行编译,然后生成.class的字节码文件,然后通过java的运行程序运行字节码文件,最后产生结果。
3、类型转换:
小转大:自动数据类型提升;大转小:要强转,强制类型的转换;4、if语句的执行,只要注意看好下面的选择语句就好了,看清楚那个是执行的,哪条语句是不执行的;
5、while和for循环是可以进行互换的,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还是可以继续使用的;