java入门

来源:互联网 发布:rmit 知乎 编辑:程序博客网 时间:2024/05/17 04:41
/********************安装************************/

1、记得装java虚拟机

2、myeclipse版本装10.7的就好,太高不成熟没汉化没破解之类,太低也不好

3、破解,汉化如下

http://wenku.baidu.com/link?url=bcgKnnDqmzwPkTnKFOYWbBuQUoklLtkkvBPuSaYIEm6ytidON8Ch28R_DxF_Jcxcila2hqOp6n1C_0B8nesI9ShXcy_xySve360zZcYv6xy

/***********************入门*************************/
se桌面/eeweb/me手机
java类,3600多个,常用150个
ee:初:html/css/script;div+css
    中:servlet、jsp;mvc
    高:struct/Ejob/hibernate/spring/ejax;ssh框架
开发工具:记事本/jceator/jbuilder/netbean(sun)/eclipse(IBM)
JDK/JRE
路径配置,环境变量/系统变量?
1、byte 2^8 short2^16 int 2^32 long 2^64
2、-0=-128印度
3、>long用链表/字符串?
4、string是类,复合数据类型
5、char两个字节,可以存放汉字
——————————————————
初始化变量
InputStreamReader isr=new InputStreamReader(System.in);
bufferedreader bfr= new bufferedreader ()
== bfr=new bufferedreader(new InputStreamReader(System.in))
——————————————————————————————
自动往高精度转,(int)1.2需要强制转换
多分支控制语句 
if()……else if
switch() case break; default break;
       //1、case可以作为括号,
         2、()和case是一个类型
         3、switch允许byte,int,char,short
/****************类****************************/
类实例化==创建一个对象?      //构造函数?
class 类名 extends 父类 implements 接口名{成员变量;构造方法;成员方法;}
1、成员变量:类{成员变量/属性}==创建一个模板
2、成员方法:和调用成员变量是同一等级;
3、方法的声明:无方法体-接口章节;区别方法的调用
4、构造方法:主要用于对新对象的初始化;你不写系统默认空的name(){};写了就调用
TIP:
1、引用传递赋予后,重新赋值,全部都变,执行同一块空间(区别值传递)
2、new是在内存中
3、内存回收a=null,也不是system.gc;c++自己回收
3、首字母类名大写,函数名小写
4、压栈原理:独立于main函数的栈,有参和无参函数,函数重载,自己识别,注意返回值
5、有参返回注意打印 
6、2.3f

—————————— this构造函数———静态变量——————————————
0、this属于对象,也是被new出来的?
1、构造函数:类名和函数名一致?
2、构造"类"可以new一个实例,实例.函数()
3、类里与成员变量平级的“引用类型”
static int i=0静态变量可以被任何一个对象访问
———————————类变量———类方法————————————————
1、类变量&静态变量?
2、实例.变量=1
3、静态变量+静态区域块,“类被定义时”执行一次静态区域块
4、静态方法只能访问静态变量&静态方法:动态方法.静态的方法
/****************************************/
抽象:类
封装:能私有就私有,通过public get(){return}获得;
      privated<默认<protected<public
包名一般小写,相互访问?
————————继承————————————//不能缩小权限
extends:属性&方法都可以继承
——子类最多继承一个父类,集成多个通过接口解决。c++直接可以,窗口调用JFrame
overload/override      
1、方法名可以相同,可调用根据参数识别,(属性方法不一样可重载,只有访问修饰符/返回类型不一样不能重载)
2、override重新写方法的话就可以覆盖
———————多态———————————————————
-get/set把私有的转为共有   
-new是把定义实例化和到一起了
1、animal an=new cat();可以类可以new一个方法;   /class int{}是怎怎么写的?
2、构建一个有多个返回值的class,每个返回值都有一个方法
————————抽象类———————————————— 
空父类,可以有实现方法(接口没有)
1、方法无{},不能被实例化,也可以无抽象方法
2、内所有方法必须被继承       //国企原理
3、不能被实例化
————————接口(抽象化的多态?)————final——————
1、无"方法体"的抽象类
2、在继承类“(参数)”中实例化接口       //后期绑定//类似多态?
3、一个类可以实现多个接口Usb,kkk
4、只可以继承接口
项目经理是做接口的
final一般用"aa_bb"定义
/*****************数组*************************/
数组定义三种方法:int  a[]=new int[8]{};
定义数组先new一下,给指针赋值
找最大值,先定义一个最大值
字符串[]用equals不用==;
————————排序——————————————
封装:buble.sor(arr)有这句话,开辟新栈
java23个模式:工厂模式,单态模式
######选择排序####
#min            ##min和index同时在东 
#30,40,50,20,10 ##
#i        j     ##值和指针分离赋值
#id             ##
##################与冒泡比较法不同的是游标对象可跳跃
2、插入排序法:有序表/无序表
3、快读排序法:1分为二,递归
4、选堆排序法
5、海量数据:合并排序法
——————查找————————————
二分查找,arr
/*****************二进制***********************************/
补码运算:反码+1
按位与&,按位异或^
算术左移《:低位溢出,符号位不变,并用符号位补溢出的高位
算术右移》:符号位不变,低位补0

/********集合类************************/
常用的6种
                       //class相当于table?
1、hash map  不能使空值
2、hash table是同步的 
1、ArrayList是,50%增长
2、Vector是同步的,倍增的
用接口接收?
/*********泛型*************/
编译时自动检查
反射机制
/***************异常************/
就是try{}catch(){}finally{}


/*******AWT/SWING/SWT/JFACE*********/
JFrame
类继承 extend
构建方法  面向对象   Java的窗口程序很一般呀
extends JPanel
implements ActionListener 建立一个监听对象
设置action命令,添加action监听者
监听源.addActionListener(监听者)=事件
addKeyListener
mouseclick/Enter/exite/Press/release
ActionListeter有不同是类里做的
1、ArryList线程不安全
2、Vector 线程安全
病毒特点:进入别人的进程并读取
线程共享同一个进程
———————线程———重写run函数——————
继承thread (已经实现了runnable接口)
实现Runnable接口  创建一个线程,把进程放进去
                                             //类里定义的变量,在方法体重用的时候的时候直接new
super.paint能刷新
—————————多线程加载同一类———————————————
print的时候在循环语句中加来检查
————————IO编程——————————————
输入流
输出流  相对于内存
文件类型开打头
IOstream
File(File和Directory)
建立文件——建立输出流——建立字符串——输出流加载字符串  //选不管缓存
1、字节流FileInputStream(操作byte)
2、字符流FileReader(操作Char)
3、缓冲字符流FileBufferedReader(操作String)line级别,不读换行,末尾返回null
————————————————————
JFileChooser
jfc.showSaveDialog();
3三大异常(编译异常,文件操作异常)
————————————————————————————
可以以panel里的参数为变量返回给模型函数???????

返回类型改为Vector<Node>,return Node?    可以立即的吧?
1、public可以不同包
2、protect 可不同子类
3、默认只能在同包
4、private只能在同类
类的成员变量可以不付初值,局部变量要付初值
/******************数据库****************************/
root/systeme/adminstrator一个意思
企业管理器/查询分析器
DML/DQL=增删改查;DDL/DCL=定义、控制
updata tablename set  ybbm=shybbm where yptym=shyptym or spm=shspm and cj=shcj  //两个字段
注册新服务器
一个绿色箭头就是一个实例就是一个分机吧?
__________________0614_____________________
1、nchar  unicode 统一两个字节表示一个汉字或者字符,最大8000字符4000个汉字
2、char 非unicode 一个字节一个字母,两个字节一个汉字
3、ntext
4、存小数最好用numeric(10,2)?
1、image数据库一般不放图片,除非对图片有安全要求
2、binary
简单查询:
1、部分字段:insert into cleck (ID,Name)values(1,xx)
2、MK不能为null
3、空值不能用等号,where age is null
4、(a or  b)  and c
5、deprment foreign key references dprt(deparNum)
6、select 选字段
7、select name,isnull(age,0)*3+xulie*2 from table1
8、_表示单个字符?
9、用select  * from shypk inner join cqypk
   where cqk.cqtym in(shypk.shtym)
   or cqk.cqypm in (shk.shypm) and cq.cj__ like sh
10、asc/desc
查询:
1、子查询: select name,sal from emp where sal=(select min(sal)from emp)
 (select优化筛选尽量放右边)
2、聚合查询:select F10,F12 from c_x  group by F10,F12
     having 和group by筛选后使用
复杂查询:
1、select * from c_x a ,s_x b where a.F10=b.F11
2、select * from c_x as a where a.f9>(select  avg(a.f9) from c_x as a group by a.F12 having  a.F12='注射剂')
3、from作为子查询是要有别名
4、分页查询、--显示前F9 980-1000个编号的
 select top 20 *  from c_x as a where a.F9   not in(
 select top 980 a.f9 from c_x as a  order by a.F9  desc) order by a.f9
5、select distinct * into #temp from c_x
 insert into c_x select * from #temp
—————————————约束—————————————————————
check  
unique    可以是空
not null
Pk 不可以是空 ,只能一个PK,可以有复合主键(多列构成一个PK)?
Fk
1、行级定义/表级定义
2、FK必须都在PK,可以n:1
3、defaut getdata();
————————————JDBC4————————————————
开放数据库接口
.出来的都是API
1、JDBC-ODBC(bridge)-SQL
2、JDBC-SQL(MS提供驱动)
3、网络协议纯Java
4、本地API
Hibernate对JDBC再封装
1、引ODBC4包是必须的
2、注意forName的语法顺序
3、java.preparement=c#.command?java.resultSet=c#.getSet
4、myps.setString()防治注入
5、execute创建表返回boolemn/executeQuray查询/executeUpdate增删改返回int
6、datadiff函数/datapart函数
____________________数据加载步骤____4步_______________________________
hsj.add(hang)
JTable.add(hsj,lm)
JScrollPane.add(JTable);
this.add(JScrollPane)
—————连接数据库4步———————
1234      //抽象是模板,要改子类,修改模板即可,接口是外挂,要改子类直接改
————————————————————
abstrTableModel(行列值)
//setModel的更新功能
_________________________________________________________________________________
ps.executeUpdate();   //不能有??sql2? 
String stuId=s_tm.getValueAt(selectRow,0)+"";  //两种强制转换int到string的区别
int是基本类型,integer是引用类型?
____________________model2 MVC模式___________________________________________________
业务需求:更改账户,密码
_____________________model3_DAO模式___SQLHelper模式__把数据库查询抽象出来__________________
业务需求:删除学生
//大概清楚了,就是把数据接口拿到后,做业务逻辑(model),把业务逻辑接口拿到后做界面(view)吧
//只抽象view的是MVC模式,抽象model的是DAO模式
_________________________________总结____________________________________
View层里:JPanel JSCrollPane是平行的, 然后加载JTable,然后JTable(model)
搭建getDatemodel(String str1   String[] paraSet)
搭建子查询?
————————————————————————
原型开发,先界面再数据库
____________________________________________
Ctrl+?
Image.read 类型不能实例化,只跟一个从类。
FlowLayout/BorderLayout布局??
ResultSet rs=sh.query(sql.par[])不是实例化,是取返回值
temp=rs.setString(columsIndex)把设计的每一列放进去
调试心得:注意检查SQL语句!   i+1,循环完药执行excutequery
JSplitPanel 是jsp?
AbstractTableModel
ResultSetMetaData把rs里的行名/列名的编号返回出来?
——————————————————————————————
1、实例变量会多次分配内存,
2、static只会分配一次内存,用于对象之间共享数据
3、静态方法可以通过静态类直接调用?
4、static定义是必须进行初始化,也就是说静态变量已经被实例化了?可以脱离对象实现
____________________________________________________________________
1类网
127.   是回路
netstat -an  -anb
sql server 1433端口
iis        80端口
FTP        21端口
SSH        22端口远程登录
talent     23号端口
stmp       25号端口
1025往后是动态端口
socket   serversocket
________________________________________
服务器:
先建serversocket;socket和accept
   接收回应:bfr(socket.input)
   发送回应:pw(socket.output)
客户端:
先建socket
   发送回应:pw(socket.output)
   接收回应:bfr(socket.input) 
双向的话,添加控制台读取/输入/输出
_________________________________________
socket s=ss.accept()实例化+赋值放一起
读和写都要append
___________________________________
JTabbedPane
br(rd(ips))
暂时用对象流:  真正是用xml来传递的
————————————————
boolean函数有多个方法的初始化b返回b,方法内b赋值
_____________________________________________
1、建立一个boolean(object)链接服务器的类;
2、经过check返回给客户端,
3、然后在客户端action里实例化check
_____________________________________________
String s = new String(“bob”); 或者String s = “bob”
类变量或者说静态变量通常被用作常量。静态变量通常通过类名字来进行访问。
类似的,静态方法是属于类的方法,而不是类对象,静态方法本身就是final的
Integer类
static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static。
static socket s只做一个链接,相当于一个话务员占线,无法实现多人
MyCtoS静态引用:=new ObjectInputStream(MyCtoS.s.getInputStream())
ctrl+T
_________________________________________________
java有13个包:lang,,net,io,sql,util,math,被取代的awt界面
javax有21个包:swing,net等
___________________20160717_____________________________________
1、创建一个线程类,用来不停读取函数
2、然后创建一个私有静态的hashmap,将ID和线程放进去
3、CtoS_thread getct(id)然后返回
调用方法:managerThread.getct(id).getS().oops
___________________________________________________
hashmap的put和get
________________________________________
要求服务器返回在线好友的包


1 0