㈠ 怎麼學習java設計
java設計的學習順序首先是javaSE:基礎語法、遞歸、面向對象、異常處理、數組、常用類、IO、線程、網路編程基本的章節順序就是這樣的。學好了javaSE就是java基礎的一些東西之後,有兩個方向,JavaEE(某寶京東等) 與 Android(移動APP,近期 Android 需求沒那麼大了)。如果是 JavaEE 方向,就可以學習 JavaWeb 了,包含(HTML、CSS、servlet、jsp等),Web 後可以做個 web 項目。之前都是為後面框架打基礎,之後就會學習各種框架(如:Spring、SpringMVC、Mybatics 簡稱SSM等)。當框架學完後,這個時候會發現很得心應手。而在自學java過程一定要理論結合實踐,多操作,在實踐中才能發現問題,解決問題,這樣才能提高。最後個人經驗多說一點,看書自學實在很枯燥,可以看尚硅 谷的穀粒學院Java學習路線圖和視頻,需要學習哪些知識點也都寫的非常清楚,都一一列出了,需要的可以搜來學習。
㈡ 設計一個JAVA類
public abstract class Vehicle{
String kind;
String color;
public void print(){
}
}
public class Truck extends Vehicle{
int load;
pulibc Truck(String kind,String color,int load){
kind = kind;
color = color;
load = load;
}
@Override
public void print(){
System.out.println("kind="+kind+",color="+color+",load="+load)
}
}
可代寫,點頭像 +++
㈢ Java編程設計
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.IOException;
import java.io.*;
public class chat {
public static void main(String[] args) {
new UDPMessage();
}
}
class UDPMessage extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextArea recordText = new JTextArea();
private JTextArea sendText = new JTextArea();
private DatagramSocket ds;
private JButton btnSend = new JButton("發送");
private JButton btnExit = new JButton("關閉");
private JLabel otherTips = new JLabel("對方IP");
private JTextField otherIp = new JTextField();
private JLabel myTips = new JLabel("我的IP");
private JTextArea myIp = new JTextArea();
InputStreamReader in;
//創建一個文件輸入流
OutputStreamWriter out;
//創建一個文件輸出流
Container p;
JScrollPane jspRecord;
JMenuBar mb = new JMenuBar();
JMenu[] m = {new JMenu("文件"),
new JMenu("好友"),
new JMenu("背景")};
JMenuItem[][] mi = {{new JMenuItem("傳送文件")},
{new JMenuItem("Regina"),new JMenuItem("Taotao"),new JMenuItem("LiShuo")},
{new JMenuItem("默
認"),new JMenuItem("淺灰色"),new JMenuItem("淡紫色"),new JMenuItem("黃綠色")}};
public UDPMessage() {
super("HiChat");
p = getContentPane();
setSize(550, 475);
centerOnScreen();
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i=0; i<m.length; i++) {
mb.add(m[i]);
for(int j=0; j<mi[i].length; j++) {
m[i].add(mi[i][j]);
mi[i][j].addActionListener(this);
}
}
setJMenuBar(mb);
p.setBackground(new Color(218, 112, 214));
p.setLayout(null);
recordText.setEditable(false);
recordText.setLineWrap(true);
jspRecord = new JScrollPane(recordText);
jspRecord.setBounds(2, 5, 350, 270);
p.add(jspRecord);
sendText.setLineWrap(true);
JScrollPane jspSend = new JScrollPane(sendText);
jspSend.setBounds(2, 285, 350,100);
p.add(jspSend);
btnExit.setBounds(184,390,80,25);
btnExit.setMargin(new Insets(0, 0, 0, 0));
btnExit.addActionListener(this);
p.add(btnExit);
btnSend.setBounds(271,390,80,25);
btnSend.setMargin(new Insets(0, 0, 0, 0));
btnSend.addActionListener(this);
p.add(btnSend);
GridLayout gl = new GridLayout(2, 0);
gl.setVgap(15);
JPanel infoPane = new JPanel(gl);
infoPane.setOpa
㈣ java界面設計
我覺得,頁面布局什麼的,這個不用說了吧。。就是邏輯而已,點擊「第一步」,判斷有沒有輸入,如果有輸入,判斷是不是正整數,如果條件符合,那麼第一格顯示輸入的值,然後第二格,處理下(其實就是for循環String,倒序)然後第三格=第一格+第二格的值;
第二步,同樣獲得第一步最後一個的和值,然後類似第一步。如下類似
㈤ Java 界面設計
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
import java.awt.GridBagConstraints;
public class Test1 extends JPanel {
private static final long serialVersionUID = 1L;
private JSplitPane jSplitPane = null;
/**
* This is the default constructor
*/
public Test1() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.fill = GridBagConstraints.BOTH;
gridBagConstraints.gridy = 0;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.gridx = 0;
this.setSize(300, 200);
this.setLayout(new GridBagLayout());
this.add(getJSplitPane(), gridBagConstraints);
}
/**
* This method initializes jSplitPane
*
* @return javax.swing.JSplitPane
*/
private JSplitPane getJSplitPane() {
if (jSplitPane == null) {
jSplitPane = new JSplitPane();
}
return jSplitPane;
}
}
樓主是不是要這種的效果???
㈥ Java設計的就業前景好不好
1,市場:
首先java有非常廣泛的應用市場,它的生態系統幾乎涵蓋了目前市面上所有的軟硬體,java幾乎是萬能的,你能想到的,java基本都能實現(雖然吹的有點大,但不可否認)。
web開發:
能做大型的互聯網網站如,京東,淘寶,人人網、去哪兒網、美團等。
java在開發高訪問、高並發、集群化的大型網站方面有很大的優勢。
移動端開發:
目前手機上所有的APP後台代碼及部分移動端頁面java是都能夠做到的。
客戶端開發:
主要面向政府、事業單位和大型企業,如醫療、學校、OA、郵箱、投票、金融、考試、物流、礦山等信息方面的系統。這些應用在我們生活中其實隨處可見,比如醫院的掛號系統、公司的打卡系統、物流系統等。
2,需求
軟體工程是計算機領域發展最快的學科分支之一,國家非常重視軟體行業的發展。對軟體工程師人才的培養給予了非常優惠的政策。
在所有軟體開發類人才的需求中對Java工程師的需求達到全部需求量的60~70%。
應該說Java軟體工程師就業前景是非常好的,再加上Java軟體工程師不僅IT專業企業需要,廣大的非IT企業也需要,前景是非常樂觀的。
3,穩定
第一個問題已經說過了,java是有一個龐大的生態系統,它的覆蓋范圍非常廣,而且已經連續10幾年位居開發語言的榜首,所以java是相對於其他語言來說,非常穩定的。
㈦ JAVA設計
一、概要
通常,需要單獨的許可權系統是解決授權的管理和維護,再分配等難題,不針對開發而言。
系統架構目標:在易於理解和管理,開發的前提下,滿足絕大部分粗粒度和細粒度許可權控制的功能需要。
除了粗粒度許可權,系統中必然還會包括無數對具體Instance的細粒度許可權。這些問題,被留給對框架的擴展方法來解決,這樣的考慮基於以下兩點:
1、細粒度的許可權判斷必須要在資源上獲取許可權分配的支持的上下文信息才可能得以實現。
2、細粒度的許可權常常具有相當大的業務邏輯相關性。對不同的業務邏輯,常常意味著完全不同的許可權判定原則和策略。相比之下,粗粒度的許可權更具通用性,將其實現為一個架構,更有重用價值;而將細粒度的許可權判斷實現為一個架構級別的東西就顯得繁瑣,增加架構的復雜性。而且不是那麼的有必要,用定製的代碼來實現就更簡潔,更靈活。否則會變成各種邏輯代碼的堆砌。
比如,proct post數量的控制,這種一般要知道用戶個性化的信息,付錢數量到資料庫中查找最高數量,還要知道此用戶已經有多少產品等,規則不具備通用性和重用性,
所以細粒度控制不應該放在許可權架構層來解決。實例級的細粒度許可權的解決方案就是將它轉化為粗粒度許可權,這樣我們許可權客戶端就變得很簡單了。
名詞解釋
粗粒度許可權:一般可以通過配置文件來授權,授權只有真假,沒有多少之分,不需要上下文的支持。不消耗資源的。
邏輯表達式:判斷「Who對What(Which)進行How的操作」的邏輯表達式是否為真。
別名:靜態授權、類級授權
細粒度許可權:不能通過配置文件等表達,需要特定上下文的支持.
邏輯表達式:判斷「When(Where)的時候,Who對What(Which)進行How的操作」的邏輯表達式是否為真。
別名:動態授權、實例級授權
設計原則:框架只提供粗粒度的許可權。細粒度的許可權也需要集中管理和維護,細粒度的許可權通過定製的擴展代碼將細粒度轉化為粗粒度授權。
二、許可權系統的設計
許可權往往是一個極其復雜的問題, 設計許可權系統第一個要解決的問題就是什麼樣的行為是需要許可權控制,什麼樣的是業務方法。他們之間本來是沒有明確的區分,任何許可權從某種角度上說可以是一種業務方法。為了以後管理和開發方面我們從概念上需要將許可權和業務明確劃分清楚,指導開發。
許可權控制行為: 對What(Which)進行How的操作需要區分Who,具有Who身份差異性和可替換性。 我們將此類操作作為許可權。
特點: 可以收回也可以分配的,具有一定的抽象級別。 消耗資源,行為結果具備一些持久性的影響。
業務邏輯行為: 對What(Which)進行How的操作的時候與Who的身份無關或者具有Who身份差異性但 是不具有可替換性。
特點: 不能抽象和共享,很難回收和分配。不消耗資源,不產生持久性。現實中也存在某一時期行為是業務邏輯,最後演變成許可權控制,或者相反的過程。
1、粗粒度許可權設計
採用自主型訪問控制方法,操作給予訪問控制列表。每一個用戶通過角色獲得一組許可權集合,許可權系統的功能是驗證用戶申請的許可權(集合)是否在這個集合當中,即申請的許可權(集合)是否投影在用戶擁有的許可權集合,換句話說:只要某用戶直接或者間接的屬於某個Role那麼它就具備這個Role的所有許可權許可。
一個自主型訪問控制方法的許可權系統包括以下幾個部分:角色、許可權、訪問控製表、
(1)許可權
描述一個許可權可以通過以下幾個要素說明:
類型(class):
名稱(name):
動作(actions):
掩碼(mask):
屬性:
具體許可權Example:
1、Test
類型(class):com.yangjs.secutiry. permissions. TestPermission
名稱(name):如:test.* ,test.sub.* ,test.sub1.sub2
動作(actions): brower_detail ,post,repost,……
掩碼(mask):0x1,0x2,0x4…..
屬性: 無
.…………..
l 存取控制器(my--acl.xml)配置
存取控制項(ACE):角色到許可權的映射集合,表示某個角色可以在某些資源上執行某些動作,它們之間通過role關聯(繼承),ACE之間產生包含關系。
存取控制列表(ACL):ACE的集合。
我們的存取控制器(ACL)是通過一個xml的配置文件說明,存取控制列表由多個存取控制項(ACE)來描述。使用方法(略)
2、細粒度許可權設計
細粒度授權需要上下文的支持,而且每個許可權控制的上下問題都不一樣,這由相關的業務邏輯決定,而且此類授權一般變化較快,應此需要將強的可維護性和擴展性,支持變化,但又不能夠太復雜,否則缺乏可執行性。雖然此類許可權個性化較強,我們仍然可以總結出很多共性:
(1) 幾乎所有的授權需要用戶的角色和ID.
(2) 特定的上下文幾乎都同用戶資源使用情況相關.
我們將此類信息稱為UserState 即:User角色以及資源使用情況和當前狀態。大部分信息我們在用戶登陸的時候已經。獲得。授權貫穿Web層和Biz層,因此我們的登陸要獨立於Web端。因此上下文我們可以用UserState結合其他來抽象。
關於上下文的維護問題,我們不可能將UserState此類參數在Web層和Biz層來回傳遞,更加不能在需要授權的地方都加上一個這樣的方法參數,這樣不太現實。其次如果在授權的地方再從資料庫中取一次這樣雖然能夠解決部分問題(不能解決userId的傳遞),這樣效率太低,不能接受。
解決方法就是將此類信息cache起來,用的時候再去取,由於此類信息具有非常高的並發性,對線程安全較高,因此我們決定將此類信息放入一個線程上下文的內存cache中。此外我們由於引入cache,就需要解決所有cache共有的維護性問題。
Cache的生命周期:用戶的一次請求,屬於線程級,用戶請求線程結束,Cache結束。
Cache的更新:當上下文信息發生變化是需要及時更新Cache,這是一個不可避免的步驟。
Cache丟失:發生在如系統down機,線程崩潰,內存溢出等等,對用戶來說就是當前請求突然中斷。
當用戶重新發送請求,我們的系統就需要重新驗證用戶,此時我們可以更新Cache解決丟失問題。
Cache的清理:這個實現就是當用戶請求結束,返回應答的時候清理,可以通過Filter實現,比較簡單。
以上是相關的原理部分,我們看看系統地實現:
實現:線程上下文的cache
實現類:com.yangjs.cache.ThreadContextCache:
public class ThreadContextCache {
public static Map asMap();
public static boolean containsKey(Object key);
public static boolean containsValue(Object key);
public static Object get(Object key);
public static void put(Object key, Object value);
public static Object remove(Object key);
public static void clean();
public static int size() ;
public static void destroy()
是否可以解決您的問題?
㈧ 設計一個Java程序!
首先,既然是對文本操作,那麼就要使用IO來進行文件讀取的操作
第二,可以將文本中的內容一次性全部讀出,放在一個變數中
第三,對變數進行業務處理
第四,對統計後的結果進行排序
難點在第三點,第三點的處理方式也比較靈活,可以用Map鍵值對的方式來存儲,比如key存的是字母,value存的是次數;當然也可以用26個變數來存儲a-z的次數,具體方式依照個人喜好進行編碼
㈨ JAVA Web設計
業務性多態,就是要抽象Service層,然後每個實際業務做一個ServiceImpl
一般業務性多態也同時伴隨Model的多態,同樣的,從數據層就要抽象。
這個設計起來是很費腦子的,而且沒看到實際的東西也沒法給你建議,總的來說,代碼方面要這么做:
Entity(產品基類),EntityExt1,EntityExt2……(實際產品類)
Service<Entity>,實現的時候實際是ServiceImpl<EntityExt>
哦對了,數據表其實同樣應該設計成繼承的樣子(產品基礎信息表和實際的不同類型的產品表)
㈩ 什麼是JAVA設計範式
就是你不知道設計的參數是具體的那種類型。比如:public void method(T t){} 那麼T就是不確定類型參數。他就是範式