`
zpball
  • 浏览: 916305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java学习笔记_系列01

阅读更多
1.配置java环境变量:
   JAVA_HOME:配置JDK的目录
   CLASSPATH:指定到哪里去找运行时需要用到的类代码(字节码)
   PATH:指定可执行程序的位置
  
   LINUX系统(在" .bash_profile "下的环境变量设置)
      JAVA_HOME=/opt/jdk1.5.0_06
      CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
      PATH=$PATH:$JAVA_HOME/bin:.
      export JAVA_HOME CLASSPATH PATH     (将指定的环境变量声明为全局的)
        
   windows系统:
      右击我的电脑-->属性-->高级-->环境变量

2.Java的运行过程:
   编译:生成可执行文件,如C++中利用g++生成a.out,效率高,但不跨平台
   解释:解释器把源文件逐行解释,跨平台但效率不高
  
   在java中:先编译后解释,把.java文件编译成.class字节码文件
      Java源代码文件(.java文件)--->
      Java编译器(javac)--->
      Java字节码文件(.class文件,平台无关的)--->
      Java解释器(java),执行Java字节码

3.Java的垃圾回收:
   由一个后台线程gc进行垃圾回收
   虚拟机判定内存不够的时候会中断代码的运行,这时候gc才进行垃圾回收
   缺点:不能够精确的去回收内存
   java.lang.System.gc();   建议回收内存,但系统不一定回应,他会先去看内存是否够用,够用则不予理睬,不够用才会去进行垃圾回收
   内存中什么算是垃圾:
      不在被引用的对象(局部变量,没有指针指向的)

4.java的安全性:
   沙箱机制:只能做沙箱允许的操作
   通过下面环节,实现安全
      加载有用的类文件,不需要的不加载
      校验字节码,查看允许的操作
         查看代码和虚拟机的特性是否相符
         查看代码是否有破坏性
         查看是否有违规操作,如越界
         查看类型是否匹配,类型转换是否能正确执行

5.
package mypack;		//相当于一个目录
	
public class HelloWorld{
	public static void main(String[] args){
		System.out.println(“Hello World”); 
	}
}  

注:
      1、文件名必须和public修饰的类名一致,以.java作为文件后缀,如果定义的类不是public的,则文件名与类名可以不同。
      2、一个.java文件中可以有多个class,但是只有一个public修饰的类。
      3、java源代码文件编译后,一个类对应生成一个.class文件
      4、一个java应用程序应该包含一个main()方法,而且其签名是固定的,它是应用程序的入口方法,可以定义在任意一个类中,不一定是public修饰的类
      编译:javac -d . HelloWorld.java
         含有包的类,在编译的时候最好用上面的格式,-d指的是让该类生成的时候按照包结构去生成," . "指的是在当前路径下生成
         如果不用上面的格式,也可以用javac HelloWorld.java,但是需要注意的是包结构就要由自己去建立,然后将生成的.class文件放到该目录下
      执行:java mypack.HelloWorld
         将字节码文件交给Java虚拟机去解释执行
         需要注意的事,必须使用包名.类名去解释执行
6.包(package):把源文件放在目录下
   由于工程的需要,将不同的源文件放在不同的目录下,从而引入了包。
   包可以看作就是一个存放java源文件的目录。
   在源码中声明一个包名:package p;(只能放在第一行,且最多只能是一行)
   如果指定多层包,那么在包名之间我们可以用.作为分隔符:package p1.p2.p3.p4;
   用“javac HelloWorld.java –d 绝对路径”,编译后生成的字节码文件就会放在指定的包结构下
   执行该程序需要用" java 包名.类名 "
   引进包中的某个类:import 包名.类名;
   引进包中的所有类:import 包名.*;

7.标识符:
   命名规则:
      (1) 由字母、数字、下划线、$组成,不能以数字开头
      (2) 大小写敏感
      (3) 不得使用java中的关键字和保留字
  
   关键字:都是小写的,jdk1.2多了strictfp(经准浮点型),关键字 jdk1.4多了assert(断言)关键字,  jdk1.5多了enum(枚举) 关键字
      随着学习进度,会慢慢接触到的
      true、false、null严格说不应该算关键字,应称其为保留字更合适
  
   习惯:
      (1) 标识符要符合语义信息
      (2) 包名所有字母小写
      (3) 类名每个单词首字母大写,其它小写 //TarenaStudent
      (4) 变量和方法:第一个单词小写,从第二个单词开始首字母大写 //tarenaStudent
      (5) 常量:所有字母大写,每个单词之间用" _ "连接

8.基本数据类型:8种
   1) 整型
      byte       1B    8位       -128到127
      short      2B    16位      -2^15到(2^15)-1
      int          4B    32位      -2^31到(2^31)-1
      long        8B    64位      -2^63到(2^63)-1
   2) 浮点类型
      float        4B     32位      
      double     8B     64位
   3) 字符类型
        char       2B   16位   
   4) 布尔型    1B
      boolean    false/true
     
   注:
      1、Java中的自动类型提升问题。
         1)、正向过程:从低字节到高字节可以自动转换。
            byte->short->int->long->float->double
         2)、逆向过程:从高字节到低字节用强制类型转换。
            例:int a = (int)4.562;
            注:逆向转换将丢失精度。
       2、boolean:只有true和false。
       3、char:Java中用" \u四位十六进制的数字 (即使在注释中出现\u,后面如果跟的不是4个数字,也会报错)"表示将字符转换成对应的unicode编码,字符类型要用单引号括起来。
       4、黙认浮点类型为double,float数据类型有一个后缀为" f "或" F "。
       5、long类型有一个后缀,为" l " 或者" L "

9.引用数据类型:
   类、接口、数组
   引用类型 变量名 = new 引用类型名(参数);      //new后面一般跟的都是类的构造器
   成员:写在类体括号里面的
10.内存空间的分配:
   内存分为:
      栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址
      堆:存放引用数据类型的实例
11.内存空间的分配:
   内存分为:
      栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址
      堆:存放引用数据类型的实例
12.自动类型提升:
   byte a = 1;
   byte b = 2;
   a = a+b;          //编译出错自动类型提升成int
   a += b;       //自加没有自动类型提升问题
   类型自动提升规则:
      a和b作某种运算
      a和b中有double,结果就是double
      a和b中有float,结果就是float
      a和b中有long,结果就是long
      除此之外,结果都是int
   把高字节转成低字节,需要作强制类型转换. byte c=(byte)a+b;
13.移位运算符:效率最高
   >>   有符号右移,补符号位
      移负数位,则将该数值加32后再进行移位
      数值的2进制是按照补码保存的
   >>>  右移后高位都补0
14.逻辑运算符:
   &/|也可以作为逻辑运算符
   &&   先判断前面一个条件,如果为假,则不用计算后一个条件
   ||   先判断前面一个条件,如果为真,则不用计算后一个条件
15." + "运算符:
   两个操作的对象是数值时,是加法
   如果有一个是字符串时,则是字符串的连接

16.流程控制语句:
   同Core C++
   switch中的变量类型只能是byte、 short、int、char四种类型
分享到:
评论

相关推荐

    图解java设计模式_学习笔记_java开发

    这份"图解java设计模式_学习笔记"是针对Java开发者深入理解和应用设计模式的重要资源。在这里,我们将深入探讨Java设计模式的核心概念、分类以及它们在实际开发中的应用。 设计模式分为三大类:创建型、结构型和...

    Java相关课程系列笔记

    Java相关课程系列笔记之八JavaScript学习笔记(建议用WPS打开) Java相关课程系列笔记之二Oracle学习笔记(建议用WPS打开) Java相关课程系列笔记之九Servlet...Java相关课程系列笔记之一Java学习笔记(建议用WPS打开)

    Java学习资料_java_climatelsm_

    "Java学习资料_java_climatelsm_"这个标题表明这是一份专门针对Java初学者的学习资源,可能涵盖了从基础到进阶的多种主题。"climatelsm"可能是项目名或特定领域的缩写,暗示了学习资料可能与气候模拟、环境科学或者...

    Java学习笔记(必看经典).pdf

    本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之一Java学习笔记 Java相关课程系列笔记之四JDBC学习笔记 Java相关课程系列笔记之六HTML学习笔记 Java相关课程系列笔记之七CSS学习笔记 Java相关课程系列笔记之八JavaScript学习笔记 Java相关...

    SpringBoot经典学习笔记_springboot_SpringBoot经典学习笔记_

    SpringBoot经典学习笔记是针对Java开发者的宝贵资源,它涵盖了SpringBoot的核心概念、特性以及实践应用。SpringBoot是由Pivotal团队开发的框架,旨在简化Spring应用的初始搭建以及开发过程,通过“约定优于配置”的...

    JAVA学习笔记-良葛格

    Java学习笔记主要涉及Java语言的历史背景、语言特点、应用平台和学习建议。以下是对这些内容的详细解析: ### Java语言的历史背景 Java起源于1990年代初的Sun公司(现为Oracle公司的一部分)的“绿色项目”计划,...

    林信良java学习笔记

    林信良的Java学习笔记是对于初学者和有经验的开发者来说宝贵的资源,它涵盖了从基础概念到高级特性的全面讲解。这份笔记可能包括了类、对象、接口、继承、多态等核心概念,以及异常处理、集合框架、IO流、多线程、...

    java学习笔记模版

    【Java学习笔记模版】 Java实习工程师在学习过程中,会涉及到许多关键知识点,尤其是在企业级开发的场景下。从给出的四天学习笔记来看,实习生正在逐步掌握Java Web开发的基础和核心技能。以下是对这些知识点的详细...

    Java学习笔记 经典必看

    ### Java学习笔记经典知识点解析 #### 一、面向对象编程基础 **面向对象**是一种重要的编程范式,它改变了传统的面向过程的编程思路,强调通过对象来组织代码,提高代码的复用性和维护性。 **面向对象的核心概念*...

    Java学习笔记全部课件和源代码

    "Java学习笔记全部课件和源代码"是一个针对初学者的资源包,它包含了一系列关于Java编程的学习材料和实例代码,旨在帮助新手快速掌握Java语言的基础和实践应用。 在Java学习的初期,理解基础概念至关重要。这包括...

    Java 学习笔记.pdf

    根据提供的信息,我们可以深入探讨Java学习过程中的几个关键知识点,主要围绕JDK的安装与配置、JDK常用命令工具、JDK文档的重要性以及应用服务器(AppServer)的基本概念展开。 ### 1. JDK (Java Development Kit) #...

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...

    Java学习笔记 必看经典 pdf

    - **面向过程**:侧重于功能分解,将程序划分为一系列相互独立的函数,强调执行顺序。 - **面向对象**:侧重于数据抽象,将程序设计为相互作用的对象集合,强调对象之间的交互和数据的封装。 #### Java中的面向对象...

    JAVA学习笔记最新ppt版1

    JAVA学习笔记最新ppt版1 JAVA 是一种面向对象的程序语言,具有更高的跨平台可能性。它是 Sun 公司 GreenProject 中撰写 Star7 应用程序的一个程序语言,由 James Gosling 创造。Java 的特性包括简单、面向对象、...

    Java 学习笔记

    "Java 学习笔记" Java 是一种面向对象的程序语言,具有跨平台的可能性。Java 的特性包括简单、面向对象、网络、解译、坚固、安全、可携和高效能。Java 平台包括 Java SE、Java EE 和 Java ME, Java SE 是 Java ...

    Java相关课程系列笔记之一Java学习笔记编程资料

    Java相关课程系列笔记之一Java学习笔记

Global site tag (gtag.js) - Google Analytics