黑马程序员---------------java基础概念

                   -----------android培训java培训、java学习型技术博客、期待与您交流!------------

什么是软件开发?

软件:一系列按照特定顺序组织的计算机数据和指令的集合。

软件的出现实现了人与计算机的更好交互。

图形化界面:这种方法简单直观。使用者易于接受。容易上手操作

命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦。需要记住一些命令。

常用的命令有:

dir:列出当前目录下的文件及文件夹。        

md:创建目录。       

 rd:删除目录。                     

cd :进入指定目录。          

 cd..:退回到上一级目录;

cd\:退回到跟目录。

del:删除文件。

exit:退出dos命令行。

cls:清屏。

早期的电脑常常用到dos命令行,因为需要记住很多命令,不利于普及。

后期出现了图形化界面,通过鼠标点击里面的形状,就可以完成操作。其实吧这些命令封装到图像化界面便于操作。

如果人要和计算机交流,那么久要 学习计算机语言。计算机的语言有很多种,我现在主要学习的是java语言。

机器语言:机器语言是直接用二进制代码指令来表示的机器语言。指令是用0和1组成的。它们有一定的位数,并分成若干段,各段的编码表示不同的含义。

高级语言:用英语编写的源代码,通过编译器将源代码翻译成机器语言。在有计算机执行。

java语言的概述

java之父--------------詹姆斯.高斯林。是SUN(Stanford University  Network)斯坦福大学网络公司,1995年推出的一门高级编程语言。

是一种面向Internet的编程语言。

随着java技术web方面的不断成熟,已经成为web应用程序的首先开发语言。

是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

java语言的三种技术架构。

J2EE企业版:是为了开发企业环境下的应用提供的一套解决方案。该技术体系主要在web应用程序的开发。

J2SE标准版:是为了开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。

J2ME小型版:是为了解决电子消费类产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品如机。

jvm:是java的虚拟机,用于保证java的跨平台性,注释:java语言是跨平台的,jvm不是跨平台的,

如果想要运行一个开发好的java程序,只需安装一个java虚拟机就可以了。

jre:是java的运行环境,jre;java的虚拟机和java的核心类库。

jdk:是java的开发工具,jdk:java的开发工具包和jre;

在我们下载javase软件是,我们只需要下载jdk就可以了,因为java的开发工具包,都是用java编写的应用程序,没有java虚拟机是运行不了的所以jdk里面含有一个jre.

java的官方网站  新版网址:www.oracle.com        老版的网址:www.sun.com

在安装jdk是需要注意的是:安装路径不要有中文或者特殊符号如空格等。安装完jdk后,提示安装jre时,需要就安装,不需要就可以不安装。

环境变量path和环境变量Classpath的作用是什么有什么不同?

环境变量path是用于给可执行文件配置路径的。

环境变量classpath是用于给类文件配置路径的。

在我们配置环境变量classpath时,值得结尾处加上;。那么java虚拟机在classpath路径下没有找到指定的类文件,会在当前目录下在查找一次。set classpath=c:\;d:\;

值得结尾处没有加;.那么java虚拟机会在classpath路径下没有找到指定的类文件,不在当前目录下查找,即使当前目录下有也不会执行。set classpath=c:\;d:\

建议:配置classpath环境变量时,值的结尾处不要添加;,如果需要访问当前目录可以.表示。Set classpath=.;c:\;d:\

标识符:

1.就是给类变量,方法起名字。

2.组成规则:

有数组0-9,英文字母大小写$以及_组成。

3.注意事项:

1.只能有组成规则规定的内容组成。

2.不能以数组开头。

3.不能是java的关键字。

4.严重区分大小写。

1.包(文件夹,用于区分同名类)com是一级包。

包名全部小写。如果是多级包,用.分隔开。

类和接口:

如果是一个单词组成:首字母大写,如:Demo,Test,Student.

 如果是多个单词组成,每个单词首字母大写。如:HelloWorld,SutdyJava

变量和方法:

如果是一个单词,首字母小写。列如:main();age,show(),nethod();

如果是多个单词组成,从第二个单词开始每个单词的首字母大写。如:showName();StdentName();

注释:就是对程序的解释性文字。

单行注释:以//开头,以回车符结束。单行注释可以嵌套单行注释。

多行注释:是以/*开头,以*/结尾。多行注释不可以嵌套多行注释,但可以嵌套单行注释。

文本注释:是以/**开头,以*/结尾。将来被javadoc工具解析,生成一个说明书。

注释的作用:解释程序,提供程序的阅读性。可以调式程序。


所以的关键字都小写。关键字被赋予了特殊的含义。

进制转换:

二进制,由0,1组成。

八进制,有0-7组成。

十进制,有0-9组成。默认是十进制。

十六进制,由0-9,A-F组成,一ox开头。

十进制-------------/2--------->二进制。

System.out.println(Integer.toBinaryString(6));//我想知道6的二进制是多少 6=110;

二进制---*2----->十进制    原理就是*2的过程。

其他进制转换

转成十六进制 四个二进制就是个十六进制。列如:5+4=9=1001;

转成八进制 三个二进制代表一位。如:001011010 =132

负数的二进制表现形式,负数的最高位是1,整数的最高位是0;

6=110

-6:其实就是6的二进制取反+1;取反将二进制的1变成0,0变成1

 6=0000-0000  0000-0000   0000-0000  0000-0110

取反=1111-1111  1111-11111   1111-1111   1111-1001

+    0000-0000  0000-0000  0000-0000   0000-0001

     1111-1111   1111-1111   1111-1111   1111- 1010=-6

常量和变量:

常量:作用于整个类,在程序运行时候是不可以发生变化的。

变量:就是将不确定的数据进行存储,于就是在内存中开辟一个空间。

(1):程序运行过程中是可以发生改变的。

格式1:数据类型 变量名 = 初始化值。

格式2:数据类型 变量名;变量名 = 初始化值。

数据类型

java语言是强类型语言,对于每一种数据都定义了明确的数据类型。在内存中分配类不同的内存空间。

数据类型:4类8种。占用字节

整数类型:Byte(1量)short(2量)int(4量)long(8量)

布尔型:Boolean 不确定可以认为是1个字节,只有两个结果,一个是true,另一个是false.

字符型:Char(2量);

浮点型:Float单精度(4量) Double双精度(8量)

注意:整数类型默认为int类型。long类型需要加L和这l后缀。

浮点型默认为double类型。float类型需要加F或者f后缀。

类型转换:

1.boolean 类型不参与转换。因为boolean的值是个常量。要么是true 要么false。

2.隐式的转换(从小到大) 

(byte,short,char)-->int-->long-->float-->double

3.强制转换(从大到小)

int b ;b=(byte)(b+2)

 格式:

数据类型

表达式的数据类型自动提升。

所有的byte型、short型和char类型的值都将被提升到int型。

如果一个long类型的,计算结果就是long类型。

如果一个数值是float型,计算结果就是float型。

如果一个数值是double类型,计算结果就是double型。

Char类型是可以参与运算的。

变量什么时候定义?

当数据不确定时,需要对数据进行存储时,就定义一个变量来完成存储动作。

转义字符:

\n\r在windows系统里面是换行。

\b是退格

\t制表符。

 运算符:

1.就是把常量和变量用符号连接起来,一般参与运算使用。

2.算数运算符:+,-,/,*,%,++,--

+)正号:加法,字符串连接符

System.out.println(“5+5=”+5+5);//5+5=55

System.out.println(5+5+“=5+5”);//10=5+5

%)

左边如果大于右边,结果是余数。

左边如果小于右边,结果是左边。

左边如果等于右边,结果是0.

正负号跟左边一致。

++与--:

++其实相当于把数值+1

--其实相当于把数值-1

参与运算:

如果在数据的后边,数据先操作,在++/--,Byte b=3,y; y=b++ 表示b先出去给y赋值,在回来b+1.y=3,b=4同理

如果在数据的前边,数据先++/--,在操作。Byte b=3,y; y=++b 表示b+1在出去给y赋值,在回家.y=4,b=4同理

赋值运算符=,+=,-=,*=,/=,%=

Int a=10;

把10赋值给int类型的变量a.

a+=20;//a=30

把左右两边的和赋值和a.

因为+=这种运算符,内含有强制类型转换。

比如:

short s1=2;

S1+=3;

相当于s1=(short)(s1+3);

关系运算符:==,!=,(大于)>,>=,(小于)<,<=

特点:关系运算符的结构都是boolean 类型

逻辑运算符:

&:与运算符,|:或运算符,!:非运算符,&&:短路与运算符,||:短路或运算符

&:符号的运算特点: 

true  &  true    =  true;  真  & 真  = 真

true  &  false   =  false;  真  & 假 = 假

false &  true    =  false;  假  & 真 = 假

false &  false   =  false;  假  & 假 = 假

&:与运算规律: 

&:与运算符的两边只要有一个是false,结果肯定是false。 

只有两边都为true,结果才是true。 

|:或符号的运算特点:              

true  |  true    =  true; 全为真,则为真

true  | false   =  true; 一真一假,则为真

false |  true    =  true; 

false |  false   =  false; 全为假,则为假

|:运算规律: 

|:或运算的两边只要有一个是true,结果肯定是true。 

只有两边都为false。结果是false。 

^:异或 :和或有点不一样。 

^:运算特点。 

true  true  false; 全为真,则为假

true  false true; 一真一假,则为真

false true  true; 

false false false; 全为假,则为假

^异或的运算规律: 

如果两边结果相同,结果是 false。 

两边的结果不同,结果是true。 

  !:非运算符,判断事物的另一面。 

!true =false 

!false=true; 

!!true=true; 

面试题: 

&&&运算的结果是一样的。但是运算过程有点小区别。 

&:无论左边的运算结果是什么,右边都参与运算。 

&&:当左边为false时,右边不参与运 

|||运算的结果是一样的。但是运算过程有点小区别。 

|:无论左边的运算结果是什么,右边都参与运算。 

||:当左边为true时,右边不参与运算的。 

位运算符是直接对二进制进行运算

<<左移运算   >>右移运算   >>>无符号右移运算   &与运算  |或运算    ^异或运算   ~反码运算 

<<左移几位其实就是该数据乘以2的几次方。左移:可以完成2的次幂运算 

>>右移几位其实就是该数据除以2的几次幂。右移:对于高位出现的空位,原来高位是什么就用什么补这个空位。 

>>>:无符号右移:数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。 

^一个数异或同一个数两次,结果还是这个数。 

 

练习: 

对两个整数变量的值进行互换(不需要第三方变量) 

开发时,

第一种:使用第三方变量的形式,因为阅读性强。 

int a = 3,b = 5;

Int  temp   ;

Temp=a;

a=b;

b=temp;

Sytem.out.println("a="+a+",b="+b);输出前a=3;b=5建立第三方变量后输出a=5;b=3

第二种方法:

这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换。数据会丢失精度。 

a= a + b;//a = 3 + 5;a = 8; 

b= a - b;//3+5-5 = 3;b = 3; 

a= a - b;//3+5-3 = 5;a = 5; 

第三种:技巧法

面试的时候用。 

a= a ^ b;//a = 3 ^ 5; 

b= a ^ b;//b = (3^5)^5; b = 3; 

a= a ^ b;//a = (3^5)^3; a = 5; 

三元运算符 

格式:(条件表达式)?表达式1:表达式2 ; 

如果条件为true,运算后的结果是表达式1, 

如果条件为flase,运算后的结果是表达式2 

三元运算符必须有结果。

示例:获取两个数中大数。 

int x = 3, y = 4, z; 

z = (x>y) ? x:y;  //z变量存储的就是两个数的大数。 

演示1:三元运算符

要求:1.我想知道60的最低四位是多少,通过三元运算符怎样代码

1.我还想知道60右移四位是多少

步骤:

1.获取60的最低四位,通过&15,

2.获取下一个四位,将60右移四位,通过无符号右移

Class operateDemo1

{

   Public static void main(String[] args)

      {

       int  num=60;

       n1=num&15

     System.out. println(n1>9?(char)(n1-10+A):n1);//输出结果是67.

      //需要获取下一组四位,将60右移4位。

      Int  temp=60>>>4;

     // temp的值进行最低四位的获取。

int  n1=temp&15;

System.out. println(n2>9?(char)(n1-10+A):n2);输出结果3

     }

 Short  s;    这两个表达式有什么区别

S+=2;

S=s+2

S+=2;编译通过因为+=运算符在给s赋值时,自动完成了强制转换操作。

S=s+2;编译失败,因为s会被提升为int类型。运算结果还int类型。无法赋值给short类型。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值