一、java概述

1、Java语言特点:纯面向对象(一切皆对象),平台无关(JVM屏蔽底层运行平台的差异),不同的平台有不同的JVM,JVM将程序翻译成当前操作系统能执行的程序,一次编译到处运行),健壮(指针,内存申请与释放影响健壮)。

2、Java两种核心机制:JVM,GC,此处有守护线程执行。

3、main函数可以保证该类的独立运行,它是程序的入口,被JVM调用.

4、java源文件以.java为扩展名,一个源文件只能有一个public class,且该class命名必须与文件名一致.

5、Java开发环境的安装,path配置,javac命令对java文件进行编译,java命令对生成的class文件进行执行.

二、标识符、关键字、常量、变量、基本数据类型的转换

1、标识符:(类名,方法名,变量名等可以自己命名的地方),字母数字_$,不能以数字开头,不能与关键字相同。

2、关键字:小写英文,编译器会以特殊方式标出。

3、常量:整形常量 123,实行常量 1.2,字符常量‘a’,逻辑常量 false,true,字符串常量“wangwei”,null常量,常量这个词用在另外的语境中表示不可变的变量final修饰.

4、变量:三要素(变量名,类型,作用域),其实就是内存一小块区域,必须先申请,然后赋值,才能使用,否则编译异常。

5、程序的执行过程:首先.java文件由java编译器编译为.class字节码文件,然后运行时类加载器把.class文件从硬盘load到内存,再通过字节码校验器,最后解释器到main方法开始执行.过程中内存管理如下:heap中放new出来的东西(heap有默认值),stack中放局部变量,data segment中放静态变量和 字符串常量,code segment中放代码。

6、类外面不能有任何代码,由此可见Java的纯面向对象。

7、变量分类:局部变量(方法体内),成员变量(方法体外,类内)或基本数据类型变量(4类8种、byte、char、short、int、long、float、double、boolean),引用数据类型变(class、interface、数组)。

8、基本数据类型:(有固定的表述范围和字段长度,不受平台影响,以保证它的可移植性)

1.布尔型:boolean取值只能是true和false.不能为null,不能用0和非0代表true和false,一般用在流程控制中.

2.字符型:java字符采用Unicode编码(全球统一编码、万国码包括全球字符),每个字符占2字节(也就是Unicode用2两个字节表示,最多65525个),可以用16进制编码形式表示例:char c='\u0061';,UTF-8是Unicode的实现方式之一,一种变长的字符编码,字母占1个字节,汉字占3个字节.

   *char c='ab';//报错,char c="a";//报错

*对字符进行转义,java使用'\'对其后的字符转换为其它的含义.

   例:String s0="ad\"as",s2="a\rb";//回车,\t//tab,s4="a\r\nb";//换行,window常这么用.

3.整数类型,可用8、10、16进制表示,8进制以0开头,16进制以0x或0X开头,java整形常量默认为int.

   但是注意:byte b=12;//正确  short s=12;//正确  long l =999999999;//报99999999超出int范围错,需要加L.

4.浮点类型,浮点类型默认为double,例:float f=1.2//编译报错  float f=1.2f//正确

9、基本数据类型的转换,多种类型混合运算时,容量小的自动转换为容量大的(自动提升),数据类型按容量大小排序如下:

byte,short,char->int->long->float->double;byte,short,char之间不转换,他们三者在计算时首先会转化为int.

10、隐式转换和强制转换的问题,例:

1.byte b = 1 + 1;        //正确,俩个常量相加在byte范围内不会报错

2.byte b = 1; b = b + 1;   //报错,b会自动提升为int,再+1还是int,赋值给byte报错

3.byte b = 1; b += 1;     //正确,隐式类型转换,相当于b=(byte)(b+1);   注意 b=(byte)b+1;是会报错的

4.byte b = 1; b = ++b;    //正确,隐式类型转换,相当于b=(byte)(b+1);

11、存储Java对象的地方有寄存器、堆栈、堆、常量存储和非内存存储(流对象和持久化对象),流对象中,对象转换为字节流,通常被发往另一台机器,持久化对象中,对象被存放在磁盘.

12、BigInteger支持任意精度的整数,BigDecimal支持任意精度的整数,可以用于精确的货币计算(例项目中酷币和人民币兑换).

13、new Random.nextInt(100),产生100内的随机整数.new Random(6).nextInt(100),每次产生的随机数一样.

14、equals默认是比较引用,大部分java类库实现了equals,用来比较对象的内容,而非对象的引用.

15、Math.random()产生0-1之间随机小数.Math.round(),对小数进行四舍五入.

三、运算符

  1、算数运算符(+,-,*,/,++,--,%)     1/100==0;//只保留整数部分;1%100=1;//取模运算

  2、赋值运算符(=,+=,-=,*=,/=,%=)    a=b=c=5;//可以

  3、关系运算符(==,>=,<=,!=,<,>)     运算结果都是boolean,"=="乎误写为"="

  4、逻辑运算符(&&,!,||,&(短路与),|(短路或),^(异或,两侧不同,则为true;)),连接boolean类型的表达式

  5、字符串连接运算法(+)          操作两侧只要有一个字符串,计算结果则为字符串

  6、位运算符(<<,>>,>>>,|,&,^,~),直接对二进制进行运算  &,|,^,既是逻辑运算符又是位运算符

位运算符实例:

  1.最有效率的方式算出2乘以8等于几?  2<<3;  //左移n位乘2的n次,右相反

  2.对两个整数进行交换不需要第三方变量

int n=2; m=1;

n=n^m;m=n^m;n=n^m;  //可用于加密解密

  3.求一个数(2进制或10进制)的16进制?  (进制之间的相互转换代码实现)

     int k=num&15;k>>>4;    //通过&15然后右移四位循环执行

7.三元运算符    (条件表达式)?表达式1:表达式2;

四、语句

  1、if语句,三种格式if;if else;if elseif else.每一种格式都是单条语句,条件表达式只看运算结果是true还是false.

  2、if(条件表达式){..} else{..} 结构  简写格式: 变量 = (条件表达式)?表达式1:表达式2;可以简化写法,但是因为是运算符,必须有运算结果.

  3、注意如下语句的区别 int i=3; 1.if(i>1){..}else if(i>2){..不执行}  2.if(i>1){..} if(i>2){..执行}

  4、switch语句.switch 中default可以放在任意位置,但是都是最后被执行,除非break,对byte,char,short,int适用,5.0可以判断枚举,7.0可以判断字符串.

  *对区间判断和结果为boolean的时候要用if.

  5、循环语句

1.for和while可以互换,唯一的区别是循环增量的内存驻留时间不同.

2.for(;;) while(true)

3.break必须用在switch和loop中,例如直接在if语句中写berak报编译错误.

4.break,continue,return,throw 异常对象,下面不能写任何东西,否则编译错误.

5.break.contiue用在内外层循环中(给循环起名),q:for(int i=0;i<10;i++){c:while(i==0){break q;}}

javase(1)_基础语法的更多相关文章

  1. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  2. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  3. Java匹马行天下之JavaSE核心技术——Java基础语法

    Java基础语法 一.   认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...

  4. 黑马程序员:Java编程_基础语法

    =========== ASP.Net+Android+IOS开发..Net培训.期待与您交流!=========== 一.数据类型 基本数据类型(简单数据类型.语言所内置的类型) 引用数据类型:(自 ...

  5. 零基础学习JavaSE(二)——基础语法

    二.Java 基础语法 2.1 Java 基础语法 java是一个面向对象的程序语言,及可把一切事物当做对象处理,而java的事物中最小的就是class (类),类中有方法,类可以创建对象,并且有一些 ...

  6. JavaSE入门学习7:Java基础语法之语句(下)

    继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...

  7. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  8. JavaSE基础(三)--Java基础语法

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  9. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

随机推荐

  1. builtin_shaders-5.3.4f1学习-Unlit/Texture

    // Unlit shader. Simplest possible textured shader. // - no lighting // - no lightmap support // - n ...

  2. 新版蜀山剑侠传3D立体格斗全方位剖析

    国人终极格斗<蜀山剑侠传>,突破传统横版格斗"二次元"瓶颈,率先开辟3D立体横版格斗网游先河,实现"有纬度"的空间化立体式全景3D战斗体验!游戏大量 ...

  3. C#主从表查询

    软件的使用必然涉及到主表和子表的操作,我们先在SQLite中创建子表.比如 创建一学生信息表做主表,再创建一个学生成绩表做子表.然后我们在程序中成绩 方法来连接子表. 判断bindingsource中 ...

  4. luoguP3808[模板]AC自动机(简单版)

    传送门 ac自动机模板题,裸的多串匹配 代码: #include<cstdio> #include<iostream> #include<algorithm> #i ...

  5. cobian backup 11 使用

    主机和备份机器创建备份用户(bf) 在备份机器上 设置备份用户, 备份目录右键安全,添加刚刚创建的备份bf用户,并授予所有权限 设置文件夹共享,并设置共享用户为刚刚创建的bf用户 并且在高级共享设置去 ...

  6. Mysql的跨服务器操作

    1.查询FEDERATED功能是否开启: show ENGINES; 2.如果状态为NO则需修改my.ini文件,增加一行federated配置: my.ini配置文件的默认路径 C:\Program ...

  7. Codeforces 1132G(关系转化树+dfn+线段树)

    要点 显然要滑动修改维护. 像通常的数列next关系一样建边(单调栈预处理),因为贪心所以是树,然后发现增删只会影响区间内的子(or父,看你连边方向行事)节点,于是使用dfs序建线段树. 为了正确地修 ...

  8. c#学习系列之Application.StartupPath的用法(美女时钟的做法)

    Application.StartupPath是一个只读属性,是不可以设置的. Application.StarupPath获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称.既是Appli ...

  9. 字符串与C51的格式化输出

    一字符数组和字符指针: 字符指针可以用字符串对其直接初始化和随时赋值:而字符数组可以用字符串进行初始化,但不能用字符串对其进行随时赋值(但此时可以定义一个字符串指针指向字符数组,然后用字符串对指针随时 ...

  10. AmazeUI 保存浏览器数据 永久性

    //保存永久缓存数据function SaveAmuiStore(ItemName, ItemData){ if (window.localStorage) { var store = $.AMUI. ...